拆分git分支之间的提交

时间:2014-07-06 21:47:07

标签: git git-branch branching-strategy

这是一个有趣的问题(或者至少我希望是这样)。我一直致力于功能,并有git分支与这些变化。

我需要为master创建pull请求(我已经重新设置了,我可以恢复)但是我的拼贴画抱怨拉请求太大而且应该拆分更多拉请求。

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

1 个答案:

答案 0 :(得分:1)

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

另一种方法是创建一个包含所有更改但没有提交历史记录(压扁)的新分支,并逐个提交和创建拉取请求,如下所示:

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

在此之后,您可以提交部分更改,并创建拉取请求。在接受之后,提交更多更改,并创建另一个pull请求,依此类推。请注意,确保您提交的部件可以在没有其他部分的情况下工作。很容易出错并最终得到一个只适合你的分支,你的未提交的更改还没有在分支中。