创建
克隆一个外部仓库
git clone ssh://user&mail.com/repo.git
创建一个新的本地版本库
git init
本地改变
查看在工作目录的被修改文件
git status
改变去暂存的文件
git diff
添加所有的当前修改去下一次提交commit
git add .
添加一些改变在<file>去下一次提交commit
git add -p <file>
提交所有的本地修改在暂存区的文件
git commit -a
提交先前暂存的改变
git commit
改变这个上一次的提交
git commit --amend
提交历史
展示所有的提交,从最新的开始展示
git log
显示特定文件随时间的变化
git log -p <file>
谁改变了什么和当在文件中
git blame <file>
分支和标记
列出所有现有的分支
git branch -av
切换头分支
git checkout <branch>
创建一个新的分支基于你当前的HEAD
git branch <new-branch>
创建一个新的跟踪分支基于一个远端的分支
git checkout --track <remote/branch>
删除一个本地分支
git branch -d <branch>
标记当前的提交一个标签
git tag <tag-name>
更新和发行
列出所有的当前配置过的远端
git remote -v
展示关于这个远端的信息
git remote show <remote>
添加一个远端仓库,命名<remote>
git remote add <shortname> <url>
下载所有的改变从远端,但当时不用合并进入头部
git fetch <remote>
下载改变和目录合并/整合进HEAD
git pull <remote> <branch>
发行本地改变在一个远端
git push <remote> <branch>
删除一个远端分支
git branch -dr <remote / branch>
发行你的标记
git push --tags
合并和变基
合并<branch>进入你当前的头
git merge <branch>
把你现在的头放在<branch>
不要将已发布的提交还原!
git rebase <branch>
abort rebase
git rebase --abort
Continue a rebase after resolving conflicts
$ git rebase --continue
Use your configured merge tool to
solve conflicts
$ git mergetool
Use your editor to manually solve conflicts
and (after resolving) mark file as resolved
$ git add <resolved-file>
$ git rm <resolved-file>
撤销
放弃所有在工作中的本地更改
$ git reset --hard HEAD
恢复撤销一个文件的本地修改
$ git checkout HEAD <file>
Revert a commit (by producing a new commit with contrary changes)
$ git revert <commit>
Reset your HEAD pointer to a previous commit …and discard all changes since then
$ git reset --hard <commit>
…and preserve all changes as unstaged changes
$ git reset <commit>
…and preserve uncommitted local changes
$ git reset --keep <commit>