在git分支之间拆分提交



这是一个有趣的问题(至少我希望是这样)。我一直在开发新功能,并在git分支中进行了修改。

我需要创建拉请求主(我已经重新基于,我可以恢复),但我的拼贴画抱怨拉请求太大,应该在更多的拉请求分裂。

本质上,我需要将分支A上的提交拆分到分支B, C, D以获得较小的拉取请求。有人知道解决这个问题的好方法吗?

最简单的方法可能是在过去的点创建一个新的分支,这将使差异不会太大而难以阅读,但同时也不会太小而无意义。将该分支作为拉取请求提交。在它被接受之后,从前一个分支和HEAD之间的另一个点创建一个新分支。重复,直到到达头部。重要的是要一步一步地完成,按顺序发送拉取请求,而不是并行发送,否则审阅者会看到他们已经在另一个并行拉取请求中看到的代码,这很烦人。

另一种方法是创建一个新的分支,包含你所有的更改,但没有提交历史(被压缩),然后一部分一部分地提交和创建拉取请求,像这样:

git checkout -b branchB origin/master
git merge --squash --no-commit branchA

在此之后,您可以提交部分更改,并创建拉请求。在接受之后,提交更多的更改,并创建另一个拉取请求,以此类推。只是要小心,确保你所承诺的部分可以在没有其他部分的情况下工作。很容易犯一个错误,最终得到一个只为您工作的分支,而您未提交的更改还没有在分支中。

最新更新