git:将合并分成几个提交

git: splitting merge into a few commits

我做了一个 git merge --squash other_branch(我在使用 git 处理 svn 存储库时使用了 squash)。

现在我有(合理的)冲突的基调,我需要非常小心地完成它。

我正在尝试想出一些聪明的方法来处理所有这些混乱情况,并可能与其他人分享一些工作。

我想到的是将这个合并分成几个提交。 一旦它们看起来不错,我想提交一些原子更改,它们有意义并且可编译。

但是我不太确定我怎样才能做到这一点。 我必须暂存就绪文件,然后 git stash 所有其他文件以查看暂存文件是否正在编译,然后 git commit 最后 git stash pop 继续处理其余文件。

Git 但是不允许我隐藏未合并的路径。

我在 google 上找不到任何现成的收据。看起来每个人都一次 git merge

有人知道或已经进行了这样的合并吗?

假设您要合并到一个分支 target

您可以在临时分支中提交合并结果,包括其冲突:

A---B - target
    \---C - tmp

并以较小的块签出要为下一次合并提交处理的文件:

$ git checkout target
$ git checkout tmp -- conflicting_file

然后处理 conflicting_file 中的冲突,并在您的 target 分支中解决冲突:

A---B---D - target
    \---C - tmp

然后再次检查 tmp 中的下一个冲突文件,继续直到解决所有冲突。