Git本地回滚重新修改代码再push到远程问题

查看:370
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆