创建
克隆一个存在的远程库
$ git clone ssh://user@domain.com/repo.git
创建一个本地库
$ git init
本地库控制命令
查看当前状态
$ git status
查看内容差别
$ git diff
将所有修改提交到暂存区(stage)
$ git add
将文件<file>的修改提交到暂存区(stage)
$ git add –p <file>
将暂存区(stage)所有修改提交到当前分支
$ git commit –a
将暂存区(stage)的修改提交到当前分支
$ git commit
修改上一次的提交
$ git commit –amend
提交历史
查看所有commit历史记录, 以最近的一次commit开始
$ git log
查看文件<file>的的历史记录
$ git log –p <file>
分支和标签
显示存在的分支
$ git branch
切换当前的分支(切换HEAD所指向的分支)
$ git checkout <branch>
根据当前HEAD创建一个新的分支
$ git branch <new-branch>
根据远程分支创建一个新的跟踪分支
$ gitbranch –track <new-branch> <remote-branch>
删除一个本地分支
$ gitbranch –d <branch>
在当前commit上创建一个标签
$ git tag<tag-name>
更新和发布
查看所有配置的远程库
$ gitremote –v
显示某个远程库的信息
$ gitremote show <remote-name>
创建一个名为<remote-name>的远程库
$ gitremote add <remote-name> <url>
从远程库<remote>下载所有改变但是不合并HEAD
$ git fetch<remote>
从远程库<remote> 下载所有改变并合并HEAD
$ git pull<remote> <branch>
将被本地库的改变推送到一个远程库
$ git push<remote> <branch>
删除一个远程库的分支
$ git push<remote> :<branch>
发布你的标签
$ git push –tags
合并和REBASE
合并<branch>到当前的HEAD
$ git merge<branch>
将HEAD定义到<branch>
$ gitrebase <branch>
终止一个rebase
$ gitrebase –abort
解决冲突后继续rebase
$ git rebase –continue
用设置的合并工具解决冲突
$ git mergetool
使用编辑器手动解决冲突并将文件标记为已解决
$ git add <resolved-file>
$ git rm <resolved-file>
撤销
撤销工作版本库所有的本地修改
$ git reset –hard HEAD
撤销文件<file>的本地修改
$ git checkout HEAD <file>
还原一个commit
$ git revert <commit>
重置HEAD指针到一个历史的commit并撤销所有的修改
$ git reset –hard <commit>
重置HEAD指针到一个历史的commit并保留提交到暂存区(stage)的修改
$ git reset <commit>
重置HEAD指针到一个历史的commit并保留所有未提交的修改
$git reset –keep <commit>
原文地址 http://www.git-tower.com/blog/assets/2013-05-22-git-cheat-sheet/cheat-sheet-large01.png