Git解决冲突

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打开。但是还没有尝试,还不知道是不是,待下次验证!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值