## git cheet sheet
https://www.git-tower.com/blog/git-cheat-sheet/
git命令
* 创建*
克隆已经存在的仓库
git clone ssh://git@gitlab.test.cn/topweibo/cofilter.git
初始化一个空的仓库
git init
本地变更
查看工作目录文件变更
git status
查看文件的具体修改
git diff
把所有当前修改添加到下次commit
git add .
将的修改提交到下次commit
git add -p <file>
提交staged变化的部分
git commit
提交所有的本地变化
git commit -a
修改最后提交注释信息
git commit --amend
提交历史
所有的提交日志
git log
指定文件的提交日志
git log -p <file>
who在when对改变了what
git blame <file>
分支和打标签
分支列表
git branch -av
切换分支
git checkout <branch>
创建一个新的分支(on current HEAD)
git branch <new_branch>
创建一个新的分支(on a remote branch)
git checkout --track <remote/branch>
为本次提交打标签
git tag
更新和发布
所有配置的远端服务器
git remote -v
远端服务器信息
git remote show <remote>
添加一个新的远端仓库
git remote add <shortname> <url>
从远端仓库下载所有变更,不集成到HEAD
git fetch <remote>
下载变更,并集成到HEAD
git pull <remote> <branch>
将本地变更更新到远端仓库
git push <reomte> <branch>
删除远端仓库的一个分支
git branch -dr <remote/branch>
发布tags
git push --tags
合并分支
将分支合并到当前HEAD
git merge <branch>
rebase当前HEADonto
git rebase <branch>
引申阅读
终止一个rebase
git rebase --abort
用配置的merge工具解决冲突
git mergetool
人工解决冲突,解决完以后把文件标识为已解决
git add <resolved-file>
git rm <resolved-file>
撤销
撤销本地工作目录的所有修改
git reset --hard HEAD
丢弃指定文件的本地修改
git checkout HEAD <file>
撤销一次提交
git revert <commit>
修改HEAD指针到一次之前的提交,并丢弃从那次提交之后的所有变更
git reset --hard <commit>
保存所有的变更为unstaged变更
git reset <commit>
保存所有没有提交的本地变更
git reset --keep <commit>