这是一个有趣的问题(或者至少我希望如此)。我一直在研究功能,并在 git 分支上进行了这些更改。
我需要创建对 master 的拉取请求(我已经重新设置了基础,我可以恢复),但是我的拼贴画抱怨拉取请求太大,应该在更多的拉取请求上拆分。
本质上,我需要将分支A上的提交拆分为分支B、C、D以获得更小的拉取请求。有人知道解决这个问题的好方法吗?
这是一个有趣的问题(或者至少我希望如此)。我一直在研究功能,并在 git 分支上进行了这些更改。
我需要创建对 master 的拉取请求(我已经重新设置了基础,我可以恢复),但是我的拼贴画抱怨拉取请求太大,应该在更多的拉取请求上拆分。
本质上,我需要将分支A上的提交拆分为分支B、C、D以获得更小的拉取请求。有人知道解决这个问题的好方法吗?
最简单的方法可能是在过去创建一个新分支,这将使差异不会太大而难以阅读,但同时又不会太小而没有意义。将该分支作为拉取请求提交。接受后,从前一个分支和您的 HEAD 之间的另一个点创建一个新分支。重复直到到达 HEAD。一步一步地做这件事很重要,按顺序发送拉取请求,而不是并行发送,否则审阅者会看到他们已经在另一个并行拉取请求中看到的代码,这很烦人。
另一种方法是创建一个包含所有更改但没有提交历史记录(压缩)的新分支,并逐部分提交和创建拉取请求,如下所示:
git checkout -b branchB origin/master
git merge --squash --no-commit branchA
在此之后,您可以提交部分更改,并创建拉取请求。接受之后,提交更多更改,并创建另一个拉取请求,依此类推。请注意,确保您提交的部分可以在没有其余部分的情况下工作。很容易出错并最终得到一个只对您有用的分支,而您未提交的更改尚未在分支中。