首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

git 操作:撤销Merge

  • 25-04-24 14:41
  • 2923
  • 9324
blog.csdn.net

你可以根据具体情况选择不同的方法来撤销 Merge remote-tracking branch 'origin/production' into test 这次合并操作。以下是几种常见的撤销方式:


1. 如果尚未提交合并

如果你在执行 git merge origin/production 之后还没有提交(只是有冲突或正在解决冲突),可以直接使用:

git merge --abort
  • 1

这会取消合并,并回到合并前的状态。


2. 如果已经提交但未推送

如果你已经提交了合并(git commit 了),但还没有推送到远程仓库,可以使用 git reset:

(1)回退到合并前的状态(保留更改但不提交)
git reset --soft HEAD~1
  • 1

这会撤销上一次提交,但保留工作区的更改,你可以重新修改代码并提交。

(2)彻底撤销合并(丢弃所有更改)
git reset --hard HEAD~1
  • 1

这会直接回退到合并前的状态,并丢弃所有修改。


3. 如果已经推送到远程

如果合并后的提交已经被推送到了远程仓库(比如 origin/test),你需要执行 强制回退:

git reset --hard HEAD~1  # 回退到合并前
git push origin test --force  # 强制推送
  • 1
  • 2

⚠ 注意:--force 会覆盖远程仓库的历史,可能会影响其他开发者的工作,请谨慎操作。


4. 使用 Revert(不影响历史记录)

如果你不想用 reset,可以用 revert 来反向提交一个新的撤销操作:

git revert -m 1 <合并提交的commit-id>
  • 1
  • -m 1 指定要保留主分支(test)的改动,而撤销合并。
  • <合并提交的commit-id> 可以用 git log --oneline 找到。

这种方法不会改变历史记录,只是创建一个新的撤销提交,适用于已经推送的情况。


总结

场景解决方法
还没提交git merge --abort
已提交但未推送git reset --hard HEAD~1
已推送,需要撤销git reset --hard HEAD~1 && git push --force
已推送,想保留历史git revert -m 1

你可以根据你的情况选择合适的方法,如果不确定,可以先 git log 看一下合并提交的情况!

注:本文转载自blog.csdn.net的PersistDZ的文章"https://blog.csdn.net/z1941563559/article/details/146500942"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

132
搜索
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top