• Git安装配置以及常用命令整理


    学而时习之,不亦说乎

    Ubuntu安装

    sudo apt-get install git
    

    配置

    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
    

    创建仓库(初始化)

    在当前指定目录下创建

    git init
    

    指定目录新建一个仓库

    git init [project-name]
    

    添加文件到缓存区

    # 添加所有
    git add .
    
    # 添加指定文件
    git add xx/xx/xx
    

    提交

    # 提交暂存区到仓库区
    git commit -m "描述(方便日后查看回忆此次提交内容)"
    
    # 提交时显示所有diff信息
    git commit -v
    
    # 使用一次新的commit,替代上一次提交
    # 如果代码没有任何新变化,则用来改写上一次commit的提交信息
    git commit --amend -m [message]
    

    分支

    • 查看分支:git branch
    • 创建分支:git branch <name>
    • 切换分支:git checkout <name>
    • 创建+切换分支:git checkout -b <name>
    • 合并某分支到当前分支:git merge <name>
    • 删除分支:git branch -d <name>

    创建分支并且换到分支

    git checkout -b xxx
    

    命令来查看所有的分支

    git branch -a
    

    切换分支

    git checkout xxx
    

    合并分支

    # 把dev分支的工作成果合并到master分支上
    git merge dev
    

    删除分支

    git branch -d xxx
    

    删除远程分支

    git push origin --delete xxx
    

    查看

    显示有变更的文件

    git status
    

    显示当前分支的版本历史

    git log
    

    显示commit历史,以及每次commit发生变更的文件

    git log --stat
    

    搜索提交历史,根据关键词

    git log -S [keyword]
    

    显示所有提交过的用户,按提交次数排序

    git shortlog -sn
    

    显示指定文件是什么人在什么时间修改过

    git blame [file]
    

    显示暂存区和工作区的差异

    git diff
    

    显示暂存区和上一个commit的差异

    git diff --cached [file]
    

    显示工作区与当前分支最新commit之间的差异

    git diff HEAD
    

    显示两次提交之间的差异

    git diff [first-branch]...[second-branch]
    

    显示今天你写了多少行代码

    git diff --shortstat "@{0 day ago}"
    

    显示某次提交的元数据和内容变化

    git show [commit]
    

    显示某次提交发生变化的文件

    git show --name-only [commit]
    

    显示某次提交时,某个文件的内容

    git show [commit]:[filename]
    

    显示当前分支的最近几次提交

    git reflog
    

    远程

    列出已经存在的远程分支

    git remote
    

    列出详细信息,

    在每一个名字后面列出其远程url,此时, -v 选项(译注:此为 –verbose 的简写,取首字母),显示对应的克隆地址。

    git remote -v | --verbose 
    

    添加一个远程仓库

    git remote add [shortname] [url]
    

    git remote add dev git://github.com/CnPeng/test.git ,这样,就可以用字符串 dev 来代指该仓库地址。在使用 git remote -v 查看仓库列表的时候,就会有一个 dev 的仓库列表。

    查看远程仓库信息

    git remote show [shortname] 
    

    重命名远程仓库

    git remote rename [old-name] [new-name] 
    

    删除远程仓库(解除与远程仓库的关系)

    git remote rm [shortname] 
    

    推送

    上传本地指定分支到远程仓库

    git push [remote] [branch]
    

    强行推送当前分支到远程仓库,即使有冲突

     git push [remote] --force
    

    推送所有分支到远程仓库

    git push [remote] --all
    

    拉取

    git pull 取回远程主机某个分支的更新,再与本地的指定分支合并

    git pull <远程主机名> <远程分支名>:<本地分支名>
    
    # 取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。
    git pull origin next:master
    
    # 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
    git pull origin next
    
    # 上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
    
    git fetch origin
    git merge origin/next
    

    在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。

    手动建立追踪关系。

    # 指定master分支追踪origin/next分支。
    git branch --set-upstream master origin/next
    
    # 如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名
    git pull origin
    

    暂存

    • 将当前分支存起来
    git stash
    
    • 查看我们“存储”的列表
    git stash list
    
    • 恢复现场
    # 恢复后,stash内容并不删除
    git stash apply
    
    # 删除
    git stash drop
    
    # 恢复的同时把 stash 存储列表的内容也删了
    git stash pop
    

    如果有一个分支上多个 stash,如果需要恢复指定的 stash ,可以在命令尾部加id,如 $ git stash apply stash@ {0},同样删除指定 stash 项目则执行如 $ git stash drop stash@{1}

    标签

    列出标签

    git tag
    

    创建标签

    • 附注标签
    git tag -a v1.4 -m "my version 1.4"
    git show
    
    • 轻量标签
    git tag v1.4-lw
    
    • 后期打标签
    git reflog
    git tag -a v1.2 9fceb02
    
    • 共享标签

    默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库

    # 推送一个标签
    git push origin v1.5
    
    # 推送所有本地新增的标签上去(检出标签)
    git push origin --tags
    

    跳转到指定标签

    git checkout v0.0.1
    

    删除标签

    # 删除本地指定标签
    git tag -d v0.0.1
    
    # 删除远程标签
    git push origin -d tag <tagname>
    

    其他

    # 中文乱码
    git config --global core.quotepath false
    

    相关参考:
    https://git.apachecn.org/
    https://www.liaoxuefeng.com/wiki/896043488029600

    Git在线练习闯关:
    https://learngitbranching.js.org/?locale=zh_CN

  • 相关阅读:
    python: 第三方时间库 arrow
    PyQt5程序打包的2种方式
    python:多任务(线程、进程、协程)
    python:网络编程(udp 和 tcp)
    python:使用matplotlib画图时,中文乱码的问题
    python:浅拷贝和深拷贝
    使用scrapy编写爬虫:爬取豆瓣Top250读书的评论
    爬虫小案例:多协程工作
    selenium:指挥浏览器工作
    爬虫小案例:联想词汇搜索
  • 原文地址:https://www.cnblogs.com/ydongy/p/13090143.html
Copyright © 2020-2023  润新知