分支管理
一、分支推进
-
主分支
单线分支,随着代码的提交而形成的一条直线,HEAD 随着commit提交之后的节点移动而移动。

-
子分支
- 当切换到子分支的时候,HEAD 则指向子分支的节点。

-
在子分支上commit提交,则子分支到下一个节点,主分支不变。

-
切换到主分支上,HEAD 则指向主分支。

-
当主分支合并子分支后,并提交,HEAD依然指向主分支并到下一节点。

-
当整个项目结束后,只保留主分支

二、创建分支
|
1
2
3
4
5
|
# 第一种方式 创建dev分支 -b 创建并切换分支$ git checkout -b dev# 第二种方式$ git branch dev # 创建dev分支,但没有切换分支$ git checkout dev # 切换dev分支 |
三、查看分支
|
1
2
3
4
|
# * dev 表示当前在dev分支上$ git branch* dev master |
四、合并分支
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#切换到dev 分支$ git checkout dev# 创建一个文件$ touch index.html# 提交到工作区$ git add index.html# 提交到版本库$ git commit -m'[+ add index.html file]'# 切换到master分支$ git checkout master# 查看当前文件$ ls# 合并分支$ git merge dev# 查看当前文件$ ls# 删除dev 分支$ git branch -d dev |
五、解决冲突
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 切换到master分支$ git checkout master# 创建一个文件 readme.txt,写入 this is a readme.txt file$ touch readme.txt$ git add readme.txt# 创建一个分支并切换$ git checkout -b fuqiang# 写入readme.txt 文件 testing is now ! 并保存$ vim readme.txt# 提交到分支fuqiang的工作区$ git add readme.txt# 提交到分支fuqiang的版本库$ git commit -m'[* 制造bug]'# 切换到master分支$ git checkout master# 合并分支$ git merge fuqiang# 合并出错,打开 readme.txt 把 >>> 之类的东西删除掉# 提交到master分支的工作区$ git add readme.txt# 提交到master分支的版本库中$ git commit -m'[+ add readme.txt file]' |