在rebase期间解决所有“由他们改变”或“被他们删除”

问题描述 投票:0回答:1

我正在做一个rebase,我想总是从分支A中取出冲突的文件。

在分支A上

git rebase -X theirs branchQ

(根据Is there a "theirs" version of "git merge -s ours"?Choose Git merge strategy for specific files ("ours", "mine", "theirs")的说法:“他们的”应该是“使用A的版本”。在rebase中,他们和我们的意思在合并方面是相反的)

但是,我仍然会对修改和删除的文件产生冲突。我想一直用A的内容。

git status

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add/rm <file>..." as appropriate to mark resolution)

        deleted by them: A/XB.cs
        deleted by them: A/YB.cs
        deleted by them: B/XD.cs
        deleted by them: B/YD.cs

还有很多。

我可以通过git rm A/XB.cs等解决这个问题,但是如何接受所​​有这些删除(以及分支A的所有其他更改)? (这是一个28阶段的反思,所以我在寻找自动化)

对于分支A和branchQ的公共父,branchQ仅包含行结束标准化,而不包含新文件或已删除文件。

git rebase
1个回答
1
投票

简短的回答是,-X的论点对我称之为高级别的冲突完全没有影响。见"-X theirs" option does not seem to work with certain Git conflictsWhat are the reasons and cases that cause git merge conflicts?

我没有可以为您执行此操作的固定脚本,但请尝试:

git ls-files --stage

请注意,“由它们删除”的文件将作为暂存插槽1和2中的条目而不是插槽3中的条目存在。这些是传递给git rm以告知Git删除第1和第2阶段条目的名称。

有关merge如何使用索引中每个文件条目允许的四个临时插槽的说明,请参阅How do contents of git index evolve during a merge (and what's in the index after a failed merge)?

© www.soinside.com 2019 - 2024. All rights reserved.