我正在处理一个有几个冲突的漫长 merge 过程。
如何保存中间状态,以便在灾难发生时定期保留备份?
最佳答案
您可以提交正在进行的工作并将其推送到临时分支中的服务器上。但要做到这一点,您必须提交带有冲突标记的文件 (git add . ; git commit
)。而且我会建议您不要这样做,因为当您返回 merge 时很容易错过冲突的地方之一。您也可以尝试压缩正在进行的 merge (git squash save
),但我不知道是否可以在服务器上推送压缩引用。
另一种选择是尝试将复杂的 merge 拆分为更小的 block ,并 push 每个中间 merge 。
例如,如果您有以下历史:
*---*---*---*---*---*---*---*---*---A
\
\--*---0---1---2---3---4---5---B
然后尝试将 B merge 到 A 中,您可以先 merge 0,然后 merge 1,然后 merge 2,然后 merge 3,...最后 merge B(0, 1, 2, ... 可能不是连续提交,但在 B 分支中有一些重要的里程碑)。
这是我们在进行复杂 merge 时使用的策略。 merge 后的分支可能在这些 merge 过程中不处于可工作状态,所以不要直接推送到 A,而是推送到另一个分支(A-B-merge),然后在 merge 完成后,将所有内容推送到 A。
关于git - 如何在 git 中保存未完全 merge 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4627481/