首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
开源技术
›
开源技术
›
在 Git 中,撤销(回退)merge 操作有多种方法 ...
返回列表
发新帖
在 Git 中,撤销(回退)merge 操作有多种方法
[复制链接]
发表于 2025-6-1 03:06:02
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
在 Git 中,撤销(回退)merge 操作有多种方法,具体取决于是否已提交、是否已推送,以及是否必要保留历史记录。以下是几种常见的撤销 merge 的方法:
1. 未提交 merge(未 commit)
假如 merge 后还未提交,可以利用以下方法撤销:
git merge --abort
复制
代码
这会终止当前的合并操作,并规复到合并前的状态。
适用于合并过程中出现辩论,但还未 git commit 的情况。
2. 已提交 merge,但未推送
假如 merge 已提交但未推送到远程仓库,可以利用 git reset 回退:
git reset --hard HEAD~1
复制
代码
HEAD~1 表示回退到上一个提交(即 merge 之前的状态)。
利用 --hard 会丢弃所有未提交的更改,慎用。
3. 已推送 merge
假如 merge 已推送到远程仓库,可以利用 git revert 生成一个反向提交:
git revert -m 1 <merge-commit-id>
复制
代码
-m 1 表示保留主分支的更改(即撤销合并分支的更改)。
这会创建一个新的提交,撤销 merge 的更改,但保留历史记录。
4. 利用 git reflog 找回历史记录
假如误操作导致丢失提交,可以利用 git reflog 查看操作历史,并规复:
git reflog # 查看操作
日志
git reset --hard <commit-id> # 恢复到指定提交
复制代码
适用于误操作后必要找回 merge 前的状态。
5. 逼迫回退远程分支(慎用)
假如 merge 已推送,且必要彻底删除合并记录(会修改历史):
git reset --hard <commit-before-merge>
git push --force origin <branch-name>
复制代码
留意
:这会覆盖远程分支,可能导致其他协作者的代码丢失,需谨慎利用。
6. 撤销 revert(重新合并)
假如之前用 git revert 撤销了 merge,但后续必要重新合并:
git revert <revert-commit-id> # 撤销之前的 revert
git merge <branch-name> # 重新合并
复制代码
适用于必要规复被撤销的合并操作。
总结
场景方法适用情况
未提交 merge
git merge --abort
合并辩论未提交
已提交未推送
git reset --hard HEAD~1
本地回退
已推送
git revert -m 1 <commit-id>保留历史记录
逼迫回退
git reset --hard + git push --force彻底删除合并记录
规复误操作
git reflog + git reset找回丢失的提交
留意事项
:
利用 --force 推送前,确保团队其他成员知晓,制止代码辩论。
git revert 适用于必要保留历史的场景,而 git reset 适用于彻底回退。
回复
使用道具
举报
返回列表
浏览过的版块
人工智能
运维.售后
.Net
SQL-Server
商道如狼道
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表