Git进阶-解决冲突文件
问题说明:
本地分支:master&active
修改代码分支:master
需合并代码分支:active
遇到的问题:在master分支上将代码commit之后,想要切换至active分支,报当前有冲突文件,必须解决冲突之后才可以切换(因为之前切换分支,代码会直接进行merge,所以就想着直接切换分支去merge就好,但是有错误提示了)
执行merge之前的操作步骤
1.查看当前状态
$git status 结果:有文件改动,需要提交文件
2.添加文件并commit
$git add -A
$ git commit -m "update fail cases"
3.查看日志
$git log 执行结果:可以看到自己提交过的最新记录
4.切换分支(想着会直接merge,就直接切换分支)
$git co active 执行结果:部分merge完成,部分有有冲突还是有什么问题,总之没有切换成功
tip:从第5步开始就是在尝试解决问题,是未知的
5.亲自merge文件
$git merge active 执行结果:当然和上面4执行结果一致(这时候master已经显示为:MERGING:表示正在merging状态)
心情描述:自己还是小白,不太敢乱操作,所以内心戏如下:
想法1:撤销merge,我不进行合并了,回到未merge之前状态(我怂)
想法2:怎么解决这些冲突,如何merge完成呢?
然后请教了百度和开发师傅,有了下文:
想法1的方案:
1.撤销merge
$git reset --hard HEAD
2.解决冲突文件
如果没有代码比对工具,只能自己去代码文件里面比对了,因为已经在merging状态,git已经将文件有冲突的地方标注出来,去查看代码里面会看到下面三个标志
①<<<<<<<HEAD
②=======
③>>>>>>>master
通过百度查看说:在①和②中间的是表示修改后的文件,②和③表示修改前的文件,
解决办法:不管是修改后还是修改前,如果是你自己修改的(如果涉及多人合作的话,就需要沟通一下了),那么你应该知道哪个是想要保留的,把需要保留的保留,需要删除的删除,并同时删除以上三个标记,然后重新保存,保存完了之后,就要当做新修改文件对待了,从上面的第二步:git add -A开始重新来一遍,就可以merge了,然后也可以切换分支了
后续:其实最开始不应该在master分支修改的,但是因为在sublime打开文件的时候,是从文件夹选择,然后打开,但是不管是master分支还是active分支,在sublime打开文件夹的时候没有标识,不知道打开的到底是哪个分支下的文件,所以就认为是master,然后每次运行也是在master下运行的用例,然后今天问了开发小哥哥,问怎么办?解答是在命令行切换至想要打开的分支,然后在sublime打开。但是还没有尝试,还不知道是不是,待下次验证!