git代码merge错且提交如何解决

1. 场景

张三提交代码a,李四拉取远端代码merge时不小心将张三代码误删,然后推送merge结果至远端;
李四在后面运行项目中发现代码无法启动,根据查看代码历史发现误删代码。
如图所示,合并产生问题。
merge出现问题

2. 问题

如何解决这种merge问题?

3. 方案一:

明确知道误删的代码(一般提交代码较少的情况),修正后提交;

4. 方案二:

通过还原张三的代码和李四自己提交的代码至两个不同的分支;
合并这两个分支,提交推送正确的代码。

4.1. 李四的代码->tmp分支

找到李四最后的提交,checkout,然后在checkout点创建新的本地分支;
checkout在checkout点创建新分支-1在checkout点创建新分支-2

4.2. 张三的代码->原分支

找到张三最后的提交,reset代码,原本地分支已经重置为张三最后提交的状态;
张三最后的提交

4.3. 在原分支(张三的代码基础上)合并李四的代码

这时候我们只需要在原分支上合并刚才checkout出来的李四的代码(刚才新建的tmp分支)过来就好了;
合并刚才checkout出来的tmp分支

4.4. 提交、推送原分支

这时候张三、李四的代码都已经在原分支上,commit,push,这时候本地和远端会有冲突,解决一下。
出现冲突

merge冲突
合并完成

结语

至此,问题解决,还是比较曲折的,希望大家合并时多加注意尽量避免这种问题;或者通过建立自己的编辑分支保留自己编辑的代码,这样出现这种问题可以更快地解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值