1.背景介绍
系统上线了,但是产品经理又提了新的需求,评估一下工期要两个月,但是同时系统正在上线运行,时不时还要修改bug,如何管理几个版本?
2.相关命令
创建分支
git branch <分支名>
查看分支
git branch –v
切换分支
git checkout <分支名>
一步完成: git checkout –b <分支名>
合并分支
先切换到主干 git checkout master
git merge <分支名>
创建和查看分支
切换分支
如果在新分支中新增文件,此时切换成旧分支,会将文件存在本地库,这样就能保证切换为新分支时,新增文件也会出现
合并分支时,需要先切换到主干分支上 git checkout master
3.冲突
冲突一般指同一个文件同一位置的代码,在两种版本合并时版本管理软件无法判断到底应该保留哪个版本,因此会提示该文件发生冲突,需要程序员来手工判断解决冲突。
合并时冲突
程序合并时发生冲突系统会提示CONFLICT关键字,命令行后缀会进入MERGING状态,表示此时是解决冲突的状态。
解决冲突
此时通过git diff 可以找到发生冲突的文件及冲突的内容。
然后修改冲突文件的内容,再次git add 和git commit 提交后,后缀MERGING消失,说明冲突解决完成。
演示
先修改主分支的文件
再修改子分支的文件
切换到主分支合并时,会出现以下问题
此时冲突文件会变成这样
=======上面的表示当前分支文件的内容,下面的表示子分支文件的内容
重点突出的是两个冲突文件之间不同的部分
此时修改该文件,将相应注释删除即可
此时再次git add即可