Git本地回滚重新修改代码再push到远程问题
本文介绍了Git本地回滚重新修改代码再push到远程问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
操作步骤是这样的:
1.本地git reset --hard commit id
回退到某个版本
2.回退版本后,未push到远程就修改了本地代码
3.修改完后再push到远程,提示先pull
4.问题是pull远程代码就覆盖掉本地修改的了
请问如何操作能把本地修改后的代码push到远程?
解决方案
为什么还要 pull
。。。
一开始是这样:
A - B - C - D 远程
A - B - C - D 本地
第一步,git reset --hard B
A - B - C - D 远程
A - B 本地
第二步,修改本地代码,记为 E
A - B - C - D 远程
A - B - E 本地
pull 远程代码
A - B - C - D 远程
A - B - E - D' 本地
其中,D' 包含了 C 和 D 的改动,因为 git pull
相当于 git fetch
加上 git merge
。这个时候 merge
的是 "Fetched HEAD",也就是远程的 D
。同时,D'
的 message 应该会出现一句 "merge … from ...."
如果你希望远程是 A - B - E
,那就不要 pull
,直接 git push -f
这篇关于Git本地回滚重新修改代码再push到远程问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文