GIT之分支管理

分支管理

一、分支推进

  • 主分支

    单线分支,随着代码的提交而形成的一条直线,HEAD 随着commit提交之后的节点移动而移动。

    GIT之分支管理

  • 子分支

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

    GIT之分支管理

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

      GIT之分支管理

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

      GIT之分支管理

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

      GIT之分支管理

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

      GIT之分支管理

二、创建分支

# 第一种方式 创建dev分支  -b 创建并切换分支
$ git checkout -b dev
# 第二种方式
$ git branch dev # 创建dev分支,但没有切换分支
$ git checkout dev # 切换dev分支

三、查看分支

# * dev 表示当前在dev分支上
$ git branch
* dev  
  master

四、合并分支

#切换到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 

五、解决冲突

# 切换到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]'