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

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

引言


我们在开发的过程中,可能由于某些原因需要我们进行代码的回归到某个指定的版本,那么我们应该怎样操作才是正确的呢?下面先看看容易犯错的操作流程:

 

1.本地git reset --hard commit id回退到某个版本

  2.回退版本后,未push到远程就修改了本地代码

  3.修改完后再push到远程,提示先pull

  4.问题是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 --force强制推送。

目录
相关文章
|
3天前
|
开发工具 git
在IDEA中配置Git的Push键
在IDEA中配置Git的Push键
10 0
|
12天前
|
安全 开发工具 数据安全/隐私保护
《Git 简易速速上手小册》第8章:保护你的代码(2024 最新版)
《Git 简易速速上手小册》第8章:保护你的代码(2024 最新版)
30 1
|
22天前
|
开发工具 git
git push 提交后撤回--图文详解
git push 提交后撤回--图文详解
15 1
|
2月前
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
30 1
记IDEA Git版本回退并push到远程操作
|
10天前
|
敏捷开发 测试技术 持续交付
云效产品使用常见问题之直接git clone 输入账密可以拉代码,但是云效平台上不行如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
12天前
|
开发工具 git
git 拉取代码仓库代码报错(合并错误 refusing to merge unrelated histories)
git 拉取代码仓库代码报错(合并错误 refusing to merge unrelated histories)
20 0
|
12天前
|
开发工具 git
完美解决git 执行git push origin master指令 报错command not found
完美解决git 执行git push origin master指令 报错command not found
21 0
|
16天前
|
数据可视化 开发工具 git
Git代码版本管理入门
Git代码版本管理入门
|
16天前
|
Shell 网络安全 开发工具
还不会 Git?最详细教你学会 Git + TortoiseGit 安装使用及提交代码!
还不会 Git?最详细教你学会 Git + TortoiseGit 安装使用及提交代码!
|
22天前
|
开发工具 git
对于github不同的分支main或者master,git拉取代码的时候怎么拉取不同分支的代码
对于github不同的分支main或者master,git拉取代码的时候怎么拉取不同分支的代码
21 1

相关实验场景

更多