1.背景介绍

系统上线了,但是产品经理又提了新的需求,评估一下工期要两个月,但是同时系统正在上线运行,时不时还要修改bug,如何管理几个版本?
Git的实战操练---分支branch_解决冲突

2.相关命令

创建分支
git  branch  <分支名>

查看分支
git branch –v  

切换分支
git checkout  <分支名>
一步完成: git checkout  –b  <分支名>

合并分支
先切换到主干   git  checkout  master
git  merge  <分支名>

创建和查看分支
Git的实战操练---分支branch_本地库_02
切换分支
Git的实战操练---分支branch_git_03
如果在新分支中新增文件,此时切换成旧分支,会将文件存在本地库,这样就能保证切换为新分支时,新增文件也会出现
Git的实战操练---分支branch_解决冲突_04
Git的实战操练---分支branch_后缀_05
合并分支时,需要先切换到主干分支上 git checkout master
Git的实战操练---分支branch_后缀_06

3.冲突

冲突一般指同一个文件同一位置的代码,在两种版本合并时版本管理软件无法判断到底应该保留哪个版本,因此会提示该文件发生冲突,需要程序员来手工判断解决冲突。

合并时冲突

程序合并时发生冲突系统会提示CONFLICT关键字,命令行后缀会进入MERGING状态,表示此时是解决冲突的状态。
Git的实战操练---分支branch_git_07

解决冲突

此时通过git diff 可以找到发生冲突的文件及冲突的内容。
Git的实战操练---分支branch_本地库_08
然后修改冲突文件的内容,再次git add 和git commit 提交后,后缀MERGING消失,说明冲突解决完成。
Git的实战操练---分支branch_解决冲突_09

演示

先修改主分支的文件
Git的实战操练---分支branch_git_10
再修改子分支的文件
Git的实战操练---分支branch_命令行_11
切换到主分支合并时,会出现以下问题
Git的实战操练---分支branch_git_12
此时冲突文件会变成这样
Git的实战操练---分支branch_本地库_13

=======上面的表示当前分支文件的内容,下面的表示子分支文件的内容
重点突出的是两个冲突文件之间不同的部分
此时修改该文件,将相应注释删除即可
Git的实战操练---分支branch_命令行_14
此时再次git add即可
Git的实战操练---分支branch_后缀_15