在进行多次提交后,如何为每次提交提交一个拉取请求?

How do I file one Pull Request per Commit after making multiple Commits?

我一直在做一个项目,并在几项任务上取得了很好的进展。

我已经非常小心地将我对每个任务的所有更改保留在他们自己的个人提交中。

现在,我想为每个提交单独发出拉取请求,因此每个拉取请求只有一个提交。

解决此问题的最佳方法是什么?

我读到它涉及树枝和樱桃采摘?我非常感谢教程、演练或流程。

理想情况下,我想使用 GUI 来执行此操作,但首先我要了解如何以及为什么这样做的背景。

我的建议也是为每个拉取请求使用单独的分支,cherry-pick 你对这些单独分支的提交。

为此,我将通过以下示例为您提供流程, 您的 master 分支没有任何功能提交,并且您的 Dev 分支包含所有提交 A、B、C、D

master

Dev => A,B,C,D

首先,您必须结帐到您的 master 分支机构

git checkout master

然后从 master

创建 FEATURE-A 分支
git checkout -b FEATURE-A

然后 cherry-pick 你将 A 提交到 FEATURE-A 分支

git cherry-pick A #A is the hash value of your commit. Eg- 2f8b782

现在你的 FEATURE-A 分支只有提交 A。所以现在你可以 push 你的 FEATURE-A 分支到 origin 并创建 pull request

git push origin FEATURE-A

并对其他提交也重复相同的过程。

希望您明白我想告诉您的内容。我尽力使它尽可能简单。如果您有任何问题,请在下方评论

您也可以使用 git format-patchgit am 配对命令来执行此操作。

mkdir patches
git checkout Dev
git format-patch -o patches master

通过这三个命令,一次提交一个文件的补丁将保存在补丁文件夹中。

然后从 master 分支创建新分支并应用所有这些补丁

git checkout master
git checkout -b FEATURE-A
git am patches