我一直致力于一个项目,并在几项任务上取得了很好的进展。
我已经足够小心,可以将每项任务的所有更改保存在各自的提交中。
现在,我想单独为每个提交发出pull请求,因此每个pull请求只有一个提交。
最好的方法是什么?
我读过它涉及分支和樱桃挑选?我很欣赏教程,演练或流程。
理想情况下,我想使用GUI执行此操作,但首先我要了解如何以及为何使用的背景。
答案 0 :(得分:2)
我的建议也是为每个拉取请求使用单独的分支& cherry-pick
您对这些独立分支的承诺。
为此,我将通过以下示例给出您的流程,
您的master
分支没有任何功能提交&你的Dev
分支包含所有提交A,B,C,D
master
Dev => A,B,C,D
首先,您必须结帐到master
分支
git checkout master
然后从FEATURE-A
master
分支
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
并对其他提交重复相同的过程。
希望你明白我要告诉你的是什么。我尽力保持尽可能简单。如果您有任何问题,请在下面发表评论
答案 1 :(得分:0)
您也可以使用git format-patch
和git am
对命令执行此操作。
mkdir patches
git checkout Dev
git format-patch -o patches master
通过这三个命令,一个提交的一个文件的补丁将保存在补丁文件夹中。
然后从master分支创建新分支并应用所有这些补丁
git checkout master
git checkout -b FEATURE-A
git am patches