git revert 撤销提交后为什么又出现冲突了? 喧丹🍀 提问于 2026-03-25 12:18:18 阅读 3 工具 我用 git revert HEAD 想撤销最新的提交,结果提示有冲突,明明这个提交是我自己刚改的,也没人动过代码啊? 之前试过 git reset --hard HEAD~1 能回退,但因为已经 push 到远程了,怕影响队友才改用 revert,没想到反而更麻烦…… 我来解答 赞 3 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 司空一苗 Lv1 用 git revert 撤销提交后出现冲突,通常是因为这次提交的更改与之前的某些更改产生了冲突。即使是你自己做的提交,如果在这次提交之后做了其他修改,这些修改可能会影响到被 revert 的更改,从而导致冲突。 具体来说,git revert 是通过创建一个新的提交来撤销之前的更改,这个新的提交会试图反向应用之前的更改,但如果有其他提交在中间改变了相关的内容,就会产生冲突,需要手动解决。 解决方法如下: 1. 先拉取最新的代码,确保你的本地仓库是最新的。 2. 运行 git revert HEAD,这会尝试撤销最新的提交。 3. 如果出现冲突,Git 会提示哪些文件有冲突。你需要手动编辑这些文件,解决冲突。 4. 解决冲突后,添加这些文件到暂存区:git add 文件名 或者 git add . 添加所有已解决冲突的文件。 5. 最后提交解决冲突后的更改:git commit,这时 Git 会自动使用一个默认的提交信息,你可以根据需要编辑。 6. 如果一切顺利,再推送到远程仓库:git push。 有时候冲突可能比较复杂,特别是如果涉及到多个人的修改。解决冲突的时候要特别小心,确保代码的逻辑没有被破坏。 回复 点赞 2026-03-25 12:30 加载更多 相关推荐 1 回答 431 浏览 Git revert 之后为什么我的 CSS 修改没恢复? 我用 git revert HEAD 撤销了最近一次提交,但发现之前改的 CSS 样式还是生效的,没回到原来的样子,这是为啥? 我改的是一个按钮的样式,原本是蓝色,后来改成红色并提交了。现在 reve... Mr.熙苒 工具 2026-03-08 20:55:18 2 回答 143 浏览 为什么每次提交React组件代码后,Git总是显示我删除了所有空格? 大家好,我最近在用React开发页面时遇到个怪问题。每次提交修改后的组件代码,Git都显示我删除了大量空格,但代码实际功能没问题,视觉效果也没变化。 比如这个按钮组件: function MyButt... UX-慧青 前端 2026-01-30 07:56:33 2 回答 103 浏览 Git rebase后提交历史被抹掉了,怎么恢复? 今天在合并分支时用了git rebase main,解决冲突后提交了,结果发现之前的提交历史全没了,只剩最后那次合并的记录。我明明记得要保留分支历史才用的rebase,现在该怎么把中间的几个提交找回来... FSD-闪闪 工具 2026-01-28 14:40:32 2 回答 35 浏览 Git Blame 为什么显示的不是我修改的那行代码? 我用 git blame 查看某行代码是谁改的,结果发现显示的是几个月前的提交,但明明是我昨天重构时改过这行啊?是不是因为 rebase 或者合并导致历史记录混乱了? 比如这段 React 组件里的逻... 开发者永香 工具 2026-03-16 18:44:22 2 回答 27 浏览 Git提交时如何避免把本地调试的CSS样式误提交到主分支? 我们团队用的是 Git Flow 工作流,最近几次 pull request 里不小心把本地调试用的 CSS 提交上去了,比如下面这段: .debug-border { border: 2px sol... 上官树鹤 前端 2026-03-16 13:33:21 2 回答 13 浏览 Git Bisect 怎么用?我试了但找不到引入 bug 的提交 我在用 Git Bisect 排查一个 UI 显示异常的问题,但跑完流程后它标出的“坏提交”根本没改过相关代码,感觉不对劲。我是不是哪里操作错了? 我怀疑是某个提交不小心删了 class 名,比如下面... 闲人超霞 工具 2026-03-02 16:55:21 2 回答 85 浏览 Git合并时冲突标记的内容被覆盖了怎么办? 今天合并分支时遇到冲突,用git merge --abort回退后,发现原来冲突标记里的内容还是被覆盖了! 比如在style.css里有段代码:.container { padding: 20px; ... 雅雯酱~ 工具 2026-02-16 01:31:25 2 回答 37 浏览 GitHub合并分支时冲突怎么解决总是报错? 我在本地用git merge feature-branch合并分支时,有个文件冲突改完后还是报错error: couldn't open 'path/to/file': No such file。已经... UI子赫 前端 2026-02-15 20:21:24 2 回答 28 浏览 为什么我的ESLint在GitHub Actions中检测到错误但构建还是通过了? 我给项目配置了ESLint,并在GitHub Actions里加了lint检查步骤。但今天提交了一个明显违反规则的代码(比如少了个分号),控制台确实输出了错误,但最后构建状态还是显示成功了。我检查了.... UE丶玉霞 工具 2026-02-15 19:11:32 2 回答 36 浏览 Git subtree合并后如何区分主项目和子目录的提交? 我在把第三方库用subtree合并到项目子目录后,发现git log里所有提交都混在一起了。之前用git subtree pull拉取更新时,明明指定了目录路径,但提交记录里显示的都是"Merge"和... ___瑞丹 工具 2026-02-10 14:37:29
具体来说,git revert 是通过创建一个新的提交来撤销之前的更改,这个新的提交会试图反向应用之前的更改,但如果有其他提交在中间改变了相关的内容,就会产生冲突,需要手动解决。
解决方法如下:
1. 先拉取最新的代码,确保你的本地仓库是最新的。
2. 运行
git revert HEAD,这会尝试撤销最新的提交。3. 如果出现冲突,Git 会提示哪些文件有冲突。你需要手动编辑这些文件,解决冲突。
4. 解决冲突后,添加这些文件到暂存区:
git add 文件名或者git add .添加所有已解决冲突的文件。5. 最后提交解决冲突后的更改:
git commit,这时 Git 会自动使用一个默认的提交信息,你可以根据需要编辑。6. 如果一切顺利,再推送到远程仓库:
git push。有时候冲突可能比较复杂,特别是如果涉及到多个人的修改。解决冲突的时候要特别小心,确保代码的逻辑没有被破坏。