您可以提交正在进行的工作并将其推送到临时分支中的服务器上。但要做到这一点,您必须提交带有冲突标记 ( 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。