我们的一个分支已经10个月没有操作了,我们希望将其与主干同步,但出现了太多的合并冲突。我应该如何让它成为当前版本的一个派生版本并且丢弃所有冲突呢?
我们的一个分支已经10个月没有操作了,我们希望将其与主干同步,但出现了太多的合并冲突。我应该如何让它成为当前版本的一个派生版本并且丢弃所有冲突呢?
如果您不介意放弃分支foo上的任何更改,只需执行以下操作:
git fetch origin
git checkout foo
git reset --hard origin/foo
如果已经过去了10个月,我认为如果您现在已经在不同的开发者存储库之间进行了许多推送和拉取操作,那么重新定位可能是不可能的。
听起来,如果有太多的基本代码差异,那么某人只需要吸收并手动执行合并工作,至少GIT应该指出这里需要完成的所有工作。
如果失败,您总可以将旧分支中所需的功能重写到最新的代码库中,我想?尽管很烦人,但通常重新创建已经创建过的东西非常快速。
听起来你是想让所有的合并冲突都消失,这样你就可以提交合并的结果了。如果是这样的话,只需对所有显示为“需要合并/冲突”的文件执行“git rm”操作。之后,你可以提交“旧分支”。然后,从新代码库中复制每个被你删除的文件(使用“git rm”命令),添加它们,并再次提交。现在你拥有了1)所有的新代码,2)大部分旧代码和3)继续努力使其正常工作。
git reset --hard branch_name
。 - Robert Rouhani