这次我们来学习一下git里的分支,它Todo,建议先用learngitbranching实操学习,在脑中建立一个实际的印象,再看blog
0x01 新建分支
1 2 3 4 5 6 7 8
| $ git branch hexo
$ git branch hexo * master
$ git checkout hexo Switched to branch 'hexo'
|
- 新建分支XXX同时将HEAD指针修改到XXX可以用
git checkout -b hexo
完成
这里我们增加文件y.txt
,再在文件x.txt
后增添几个字符,在hexo分支下加入仓库并提交
可看到
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| $ ll total 1 -rw-r--r-- 1 Shawn 197121 63 2月 8 15:52 x.txt -rw-r--r-- 1 Shawn 197121 0 2月 8 16:00 y.txt
$ git log commit 1405868ee69c9b682e9caf0c0b182d297cea084e (HEAD -> hexo) Author: peaceSh4wn <i@sina.com> Date: Sat Feb 8 16:00:38 2020 +0800
add y.txt
commit 116d8b76b22bec10dc0826c1181002ac4930f5b1 Author: peaceSh4wn <i@sina.com> Date: Sat Feb 8 15:55:02 2020 +0800
ok
commit b4d9c9a9a72c8eaeb7bf596e050772d19cca64c8 (master) Author: peaceSh4wn <i@sina.com> Date: Sat Feb 8 15:35:08 2020 +0800
first commit
|
0x02 合并分支
我们切换回master
1 2
| $ git checkout master Switched to branch 'master'
|
这里注意一下是谁合并到谁的逻辑:
master把hexo合并过来 == hexo变成现在master的一个<同一结点>or<父节点>
0x21 hexo创建后,master没有再次提交(同一节点)
将hexo分支的工作成果合并到master分支上,也就是git中的Fast-forward
模式,合并速度非常快
因为这里master之后没有commit,所以直接是master指针移动到hexo指针所指位置,指向同一结点
1 2 3 4 5 6 7
| $ git merge hexo Updating b4d9c9a..1405868 Fast-forward x.txt | 2 +- y.txt | 0 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 y.txt
|
0x22 hexo创建后,master有提交(父节点)
hexo变成master的一个父节点
0x03 删除分支
完成合并之后我们就可以删除hexo分支了
1 2 3
| $ git branch -d hexo
Deleted branch dev (was b17d20e).
|
0x04 速查
1 2 3 4 5 6
| git branch git branch <name> git checkout <name> or git switch <name> git checkout -b <name> or git switch -c <name> git merge <name> git branch -d <name>
|
0xXX 学习资源
廖雪峰git
git log详解