Git学习笔记(5): 分支管理(创建分支、切换分支、合并分支、删除分支)


注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/106126916


1 创建分支与查看分支


创建分支命令格式:git branch 分支名

查看分支命令格式:git branch -v
也可以通过命令:git log --decorate --all --oneline --graph 对各个分支进行图形化显示。



假设目前工作区和仓库有 d123.txt , d456.txt , hello_world.cpp , README.md 四个文件,现在需要建立分支 feature_sum , 然后查看该分支。

创建分支,使用命令:git branch feature_sum ,然后通过命令:git branch -v 查看该分支,也可以通过命令:git log --decorate --all --oneline --graph 图形化显示分支,结果如下图所示:

在这里插入图片描述




2 切换分支


切换分支命令格式:git checkout 分支名


例如,前面的例子已经创建了 feature_sum 分支,接下来切换到该分支(命令: git checkout feature_sum ),结果图下图所示,发现指针HEAD指向了分支 feature_sum 。

在这里插入图片描述


然后在 feature_sum 分支下添加 test_sum.cpp 文件并提交到仓库,结果如下图所示:

在这里插入图片描述




3 合并分支


假设需要将其他分支合并到master分支上,则合并分支前,首先切换到master分支上,然后将其他分支合并到master分支上即可。
合并分支命令格式:git merge 分支名


例如:
由前面的操作可知,当前分支 feature_sum 下增加了 test_sum.cpp 文件,可以通过切换分支查看master分支下的文件是否发生变化。

在这里插入图片描述


在这里插入图片描述


由上图可知,master分支下并未增加 test_sum.cpp 文件,这时通过合并分支操作就可以增加feature_sum分支下的 test_sum.cpp 文件。
注意: 若将 feature_sum 分支合并到master分支,此时当前分支状态需要在master分支下。


使用合并分支命令:git merge feature_sum ,结果如下图所示,可以发现master分支下增加了test_sum.cpp文件,表示合并分支操作成功。


在这里插入图片描述




4 解决合并分支产生的冲突


合并分支的时候可能会产生冲突,下面举一个例子进行说明:
上一个操作合并分支,则master分支下的文件和feature_sum分支下的文件相同。假设用户A对master分支下 test_sum.cpp 文件进行修改然后提交到仓库,用户B对feature_sum分支test_sum.cpp文件进行修改然后提交到仓库。用户A和用户B对同一个文件进行修改,那么修改的文件内容在合并时会产生冲突,系统不知道该如何操作,则会出现报错,此时就需要人工修改文件来解决冲突。


下面通过实际操作来说明解决冲突。


(1) master分支下修改 test_sum.cpp 文件,然后提交到仓库,结果如下图所示:

在这里插入图片描述



(2) feature_sum分支下修改test_sum.cpp文件,然后提交到仓库

在这里插入图片描述



(3) 合并分支(feature_sum分支合并到master分支)

在这里插入图片描述


如上图所示,合并分支时出现冲突,提示 test_sum.cpp 文件出现冲突,并且此时还处于合并状态,这是需要解决冲突,通过命令: vim test_sum.cpp 打开该文件查看冲突,如下图所示:

在这里插入图片描述


test_sum.cpp 文件中 <<<<<<< HEAD 提示符 、====== 分隔符和 >>>>>> feature_sum提示符 删除,然后修改内容,如下图所示:

在这里插入图片描述


接着,修改文件后保存退出 ——> 解决冲突后的文件提交到暂存区 ——> 解决冲突后的文件提交到仓库,结果如下图所示:

在这里插入图片描述


由上图可以看出,合并时出现冲突时,系统处于合并状态,此时需要查看冲突文件,然后修改冲突,将文件提交到暂存区,然后提交到仓库即可完成合并。



下面对解决合并冲突进行总结:

解决冲突的步骤(当前一直处于合并状态):

  1. 第一步:编辑文件,删除/修改冲突部分,保存退出;
  2. 第二步:重新提交文件至暂存区: git add 文件名
  3. 第三步:重新提交文件至仓库: git commit -m “提交描述”
    注意: 此时commit后不能带具体的文件名,因为当前一直处在合并状态,默认提交的是当前冲突的文件。




5 删除分支


合并分支结束后,可以删除分支,删除分支命令格式:git branch -d 分支名


如下图所示,使用命令:git branch -d feature_sum 删除 feature_sum 分支,结果如下图所示:

在这里插入图片描述




6 小结

分支管理中常用的命令如下:

  1. 创建分支命令格式:git branch 分支名
  2. 查看分支命令格式:git branch -v
  3. 切换分支命令格式:git checkout 分支名
  4. 合并分支命令格式:git merge 分支名
      注: 需要注意当前所在分支
  5. 删除分支命令格式:git branch -d 分支名






参考资料

[1] https://www.bilibili.com/video/BV1bs411N7ny?p=7
[2] https://www.bilibili.com/video/BV1pW411A7a5?p=24



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章