如何在git中保存未完全合并的索引?

Mar*_*cus 11 git merge patch

我正在研究一个有几个冲突的长度合并过程.

我可以做些什么来保存中间状态,以便定期保留备份以防万一?

Syl*_*sne 3

您可以提交正在进行的工作并将其推送到临时分支中的服务器上。但要做到这一点,您必须提交带有冲突标记 ( git add . ; git commit) 的文件。我建议你不要这样做,因为当你返回合并时很容易错过冲突的地方之一。您还可以尝试压缩正在进行的合并(git squash save),但我不知道是否可以在服务器上推送压缩引用。

另一种选择是尝试将复杂的合并拆分为较小的块,并推送每个中间合并。

例如,如果您有以下历史记录:

*---*---*---*---*---*---*---*---*---A
    \
     \--*---0---1---2---3---4---5---B
Run Code Online (Sandbox Code Playgroud)

并尝试将 B 合并到 A 中,您可以通过首先合并 0,然后 1,然后 2,然后 3,... 然后最后 B(0, 1, 2,... 可能不是连续提交,但 B 分支中的一些重要里程碑)。

这是我们在进行复杂合并时使用的策略。合并的分支在合并期间可能不处于可工作状态,因此不要直接推送到 A,而是推送到另一个分支(AB-merge),然后一旦合并完成,将所有内容推送到 A。

  • 我要补充一点:如果你使用“git re-re-re”,你可以让较小的合并工作,然后将它们扔掉并使用 re-re-re 数据快速进行大合并。 (2认同)