文章目录
在团队协作开发中,可能会遇到这样的情况:
A 使用 git commit 提交更新并 push 到远程仓库,B 修改了代码后使用 --amend 更新了本地的提交记录并试图 pull 最新代码时,出现以下错误:
fatal: 拒绝合并无关的历史
这是因为 B 的本地提交历史(由于 --amend 修改)和远程仓库的提交历史发生了冲突,Git 无法自动合并两者的历史记录。
本文将带你详细解析问题产生的原因,并提供多种解决方案,帮助你顺利解决这个错误。
问题原因分析
- 什么是
--amend?git commit --amend用于修改最近一次的提交信息或提交内容,这会重新生成一个新的提交 ID(哈希值)。 - 问题产生的根源 当 B 在本地使用了
--amend后,本地的提交 ID 与远程仓库的最新提交 ID 不一致,而 Git 默认情况下无法合并两个没有共同提交历史的分支记录。
解决方案
针对不同需求,可以选择以下方法来解决问题: