创建
克隆一个已存在的仓库
1
$ git clone ssh://user@domain.com/repo.git
创建一个新的本地仓库
1
$ git init
本地变更
查看工作区中变更的文件
1
$ git status
查看对已追踪文件的变更
1
$ git diff
添加当前所有变更到下一次提交
1
$ git add .
添加文件
1
$ git add -p <file>
提交所有已追踪文件的本地变更
1
$ git commit -a
提交之前已暂存的变更
1
$ git commit
修正最后一次提交 注意:不要修改已发布的提交!!!
1
$ git commit --amend
提交历史
显示所有提交,逆序
1
$ git log
显示特定文件的变更历史
1
$ git log -p <file>
显示何人何时修改了文件中的什么
1
$ git blame <file>
分支和标签
列出所有已存在的分支
1
$ git branch -av
切换 HEAD 分支
1
$ git checkout <branch>
基于当前的 HEAD 创建一个新的分支
1
$ git branch <new-branch>
基于一个远端的分支创建一个跟踪的分支
1
$ git branch --track <branch>
删除一个本地分支
1
$ git branch -d <branch>
更新和发布
列出所有当前配置的远端
1
$ git remote -v
显示关于一个远端的信息
1
$ git remote show <remote>
添加新的远端仓库,并起别名
1
$ git remote add <shortname> <url>
从远端拉取所有变更,但是不合并到 HEAD
1
$ git fetch <remote>
拉取变更,并直接合并到 HEAD
1
$ git pull <remote> <branch>
发布本地变更到一个远端
1
$ git push <remote> <branch>
删除一个远端分支
1
$ git branch -dr <remote>/<branch>
发布标签
1
$ git push --tags
合并和变基
合并
1
$ git merge <branch>
用
1
$ git rebase <branch>
终止本次变基
1
$ git rebase --abort
在解决完冲突之后继续本次变基
1
$ git rebase --continue
使用你自己配置的合并工具来解决冲突
1
$ git mergetool
使用你自己的编辑器手动解决冲突,并在解决完之后标记文件为 resolved
1
2
$ git add <resolved-file>
$ git rm <resolved-file>
撤消
丢弃所有工作区中的本地变更
1
$ git reset --hard HEAD
丢弃特定文件中的本地变更
1
$ git checkout HEAD <file>
回退一次提交(通过相反的变更产生一个新的提交)
1
$ git revert <commit>
重置 HEAD 指针到一个以前的提交 …并丢弃从那时起的全部变更
1
$ git reset --hard <commit>
…并把所有变更保留为未暂存的变更
1
$ git reset <commit>
…并把所有变更作为未提交的本地变更保留
1
$ git reset --keep <commit>