更改和修改的文件较大,可以从叉子进行PR

时间:2018-11-22 17:12:09

标签: git

在我们的工作中,我们有一个政策,即最终代码在存储库中的主代码中,每个人都必须创建一个分叉,然后进行PR来推动更改。

我在工作流程中使用syncing-a-fork,在master本地进行所有更改,然后执行PR。直到我开始在本地创建分支之前,这是可以的,基本上,我的分支流程是这样的:

git fetch upstream
git checkout master
git merge upstream/master
git checkout -b feature

我的目的是从master那里获得所有最新更改,然后我创建了一个新的Branch并开始在本地提交我的更改。完成功能后,我尝试将所有提交提交给master,所以我做到了:

git fetch upstream
git checkout master
git merge upstream/master
git push master
git checkout my-branch
git merge master

然后将我的更改推送到github并从那里创建PR,此问题是PR将我的更改以及所有来自提交的更改标记为“已修改的文件”,因此我看到的不是20个已修改的文件像200。

在这种情况下应遵循的正确流程是什么?

谢谢

1 个答案:

答案 0 :(得分:1)

您可能想根据master中的最新提交对更改进行“重新设置”:

git checkout my-branch
git fetch upstream
git rebase upstream/master

也就是说,您在分支中所做的提交将显示为好像是在master中当前所做的之上。如果您的分支机构与master之间存在任何冲突,git rebase会提示您解决问题,然后继续。

或者,如果您在分支机构上对master所做的更改很小,则只需从分支机构创建PR,而无需合并/重新设置基础。


当您有两个彼此稍有不同的分支想要在更长的时间内保持最新状态时,“同步叉子”工作流程非常适合。在这种情况下不适用:创建功能分支,打开PR,PR合并,然后删除功能分支。