3

在 git 中合并时如何强制“我的更改”?有人将所有 bin 目录放在 git 中,现在我遇到了可怕的合并冲突 :(

现在它说以下内容:

解决此问题后,运行“git rebase --continue”。如果您希望跳过此补丁,请运行“git rebase --skip”。要恢复原始分支并停止变基,请运行“git rebase --abort”。

我不想合并,我只想使用我的更改删除所有这些文件。

编辑:大多数文件已成功合并,无论是通过自动合并还是因为没有冲突。但是仍然有不少像下面这样存在。

警告:无法合并二进制文件:src/reports/obj/Debug/TempPE/GroupMailDS.Designer.cs.dll(HEAD 与添加的 gitignore)

4

3 回答 3

8

我对此不是 100% 有信心,但我认为这是一个很好的案例:

git merge otherbranch -s recursive -X ours

该命令尝试使用递归策略将主题分支合并到您的签出分支中。-X ours 选项是递归策略的一个子集,它通过假设您当前签出的分支是权威的,来自动解决冲突。

于 2010-06-23T15:39:50.647 回答
1

你可以:

  • git rm目录(包含所有这些obj 二进制文件,一开始就不应该提交)
  • 添加一个 .gitignore 指令以确保任何未来的 obj 目录都不会出现在git status(并且不会被添加)
  • git push那棵新树,有助于传播“ obj”目录也应该从其他 Git 存储库中消失的事实(因此根本不会触发合并)。

如果您可以征得所有其他参与者的同意,您可以:

但由于它涉及用新的历史记录替换已发布的历史记录,因此只有在其他用户同意的情况下才应该这样做。

于 2010-06-23T10:50:45.573 回答
0

我想你可以用你的二进制文件替换他们的二进制文件(因为真的不可能合并)或者只是 git rm 不需要的二进制文件。完成后,只需 git rebase --continue

于 2010-06-23T12:31:40.063 回答