学习使用 Git 已经一年有余,一些常用技能也用的炉火纯青了,但偶尔碰到一些生僻的技能,总是需要去 Google,第二次用时又忘了。所以这是一篇我自认为比较重要的 Git 技能表,主要供自己查阅使用,反复查阅能够加深印象,提升技能熟练度。如果你是还不知道 Git 是什么,建议先阅读 廖雪峰的Git教程。
工作流
Git 最核心的一个概念就是工作流。工作区(Workspace)是电脑中实际的目录;暂存区(Index)像个缓存区域,临时保存你的改动;最后是版本库(Repository),分为本地仓库和远程仓库。下图真是一图胜千言啊,就无耻盗图了。
远程仓库
添加远程仓库
1
| git remote add origin git@server-name:path/repo-name.git
|
查看远程仓库
1 2
| git remote git remote -v
|
推送分支
1
| git push origin master #推送到远程master分支
|
抓取分支
1 2 3 4
| git clone git@server-name:path/repo-name.git git checkout -b dev origin/dev git pull origin master git fetch origin master
|
$ git branch --set-upstream branch-name origin/branch-name
,可以建立起本地分支和远程分支的关联,之后可以直接git pull
从远程抓取分支。
另外,git pull
= git fetch
+ merge
to local
删除远程分支
1 2 3
| $ git push origin --delete bugfix To https: - [deleted] bugfix
|
历史管理
查看历史
1 2 3
| git log git log -p -2 git show cb926e7
|
版本回退
1 2 3
| git reset --hard HEAD^ git reset --hard cb926e7 git reflog
|
用HEAD表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,HEAD~100
就是上100个版本。
管理修改
1 2 3
| git status git checkout -- <file> git reset HEAD <file>
|
查看差异
1 2 3 4
| git diff git diff --cached git diff HEAD -- readme.txt git diff
|
使用内建的图形化git:gitk
,可以更方便清晰地查看差异。当然 Github 客户端也不错。
删除文件
储藏和恢复
1 2 3 4
| git stash git stash list git stash apply git stash pop
|
分支管理
创建分支
1 2
| git branch develop git checkout -b master develop
|
合并分支
1 2 3
| git checkout master git merge --no-ff develop git branch -d develop
|
标签
显示标签
创建标签
1 2 3
| git tag v0.1 git tag v0.1 cb926e7 git tag -a v0.1 -m 'version 0.1 released'
|
操作标签
1 2 3 4 5 6 7
| git checkout
git push origin git push origin --tags
git tag -d git push origin :refs/tags/
|
Git 设置
设置 commit 的用户和邮箱
1 2 3
| git config user.name "xx" #设置 commit 的用户 git config user.email.com "xx@xx.com" #设置 commit 的邮箱 git config format.pretty oneline #显示历史记录时,每个提交的信息只显示一行
|