记录常用git命令

创建版本库

1
2
$ git clone <url>                          #克隆远程版本库
$ git init #初始化本地版本库

资源修改与提交

1
2
3
4
5
6
7
8
9
$ git status                               #查看资源状态
$ git diff #查看变更内容
$ git add . #所有改动的文件添加到暂存区
$ git add <file> #指定的文件添加到暂存区
$ git mv <old> <new> #文件修改名称
$ git rm <file> #删除暂存区、分支、本地文件
$ git rm --cached <file> #删除暂存区、分支文件
$ git commit -m "msg" #提交所有更新过的文件
$ git commit --amend #修改最后一次提交

撤销操作

1
2
3
$ git reset --hard HEAD                    #撤销工作目录所有未提交文件的修改内容
$ git checkout HEAD <file> #撤销指定的未提交文件的修改内容
$ git revert <commit> #撤销指定的提交

查看提交历史

1
2
3
4
$ git log                                  #查看提交历史
$ git log -p <file> #查看指定文件的提交历史
$ git blame <file> #以列表方式查看指定文件的提交历史
$ git show <commit-id> #查看某次提交的修改内容

分支与标签

1
2
3
4
5
6
7
8
9
10
$ git branch                               #显示所有的分支
$ git checkout <branch/tag> #切换到指定分支或标签
$ git branch <new-branch> #创建新的分支
$ git checkout -b <new-branch> #创建新的分支并切换到新分支
$ git branch -d <branch> #删除本地分支
$ git tag #列出所有本地标签
$ git tag <tag> #基于最新提交创建标签
$ git tag -d <tag> #删除标签
$ git show <tag> #显示指定标签信息
$ git tag -a <tag> -m "msg" #基于最新提交创建标签并添加注释

合并与衍合

1
2
3
4
5
$ git merge <branch>                       #合并指定分支到当前分支
$ git rebase <branch> #衍合指定分支到当前分支(线性历史)
$ git cherry-pick <commit-id> #合并某次提交到当前分支
$ git ls-files -s #检查文件是否发生合并冲突(0-没有冲突,合并成功,其他值为失败;1-共同版本文件内容;2-当前用户对应的文件版本;3-合并后的文件对应的远程版本)
$ git show :n:filename #查看对应文件的对应版本的内容

远程操作

1
2
3
4
5
6
7
8
9
$ git remote -v                            #查看远程版本库信息
$ git remote show <remote> #查看指定远程版本库信息
$ git remote add <remote> <url> #添加远程版本库
$ git fetch <remote> #从远程库获取代码
$ git pull <remote> <branch> #下载代码及快速合并
$ git push <remote> <branch> #上传代码及快速合并
$ git push <remote> :<branch/tag> #删除远程分支或标签
$ git push origin --delete <branch> #删除远程分支
$ git push --tags #上传所有标签