最近,我遇到了这样一种情况,当我从本地的上游重建时,我的错误修复的拉取请求出了问题,然后试图将其推送到github上的本地PR。
我想知道我是否正确操作或者我的工作流需要改变。
基本上,我按照以下工作流程操作:
1. 在github上fork代码库 2. 将代码库克隆到本地。设置自动产生的原点和上游来源。 3. 创建"fix"分支。 4. 编辑文件。 5. "git push -u origin fix" ,并在此分支上提交拉取请求。 6. 同时,我发现我修改的某个文件在主代码库中已经更新。所以我用"git fetch upstream; git merge upstream/master"来更新。 7. 我更新了我的origin/master:"git push"。 8. 然后我在本地对我的"fix"分支进行了"git rebase master",手动合并了它们,因为有一个冲突;最后使用"git add ; git rebase --continue"。 9. 然后我尝试了"git push",事情就出错了。似乎没有一种好的方式可以将这个重建的"fix"分支放入我的PR中。
所以我想知道我是否漏掉了什么步骤,或者是否需要更改步骤。我不确定"git push origin"是否正确,或者它是否需要更具体的指定(例如使用分支名称)。在最后一步中是否应该/可以尝试"git push --force"(PR的一部分在我的github仓库中,但很可能没有在其他地方拉取)?
我想知道我是否正确操作或者我的工作流需要改变。
基本上,我按照以下工作流程操作:
1. 在github上fork代码库 2. 将代码库克隆到本地。设置自动产生的原点和上游来源。 3. 创建"fix"分支。 4. 编辑文件。 5. "git push -u origin fix" ,并在此分支上提交拉取请求。 6. 同时,我发现我修改的某个文件在主代码库中已经更新。所以我用"git fetch upstream; git merge upstream/master"来更新。 7. 我更新了我的origin/master:"git push"。 8. 然后我在本地对我的"fix"分支进行了"git rebase master",手动合并了它们,因为有一个冲突;最后使用"git add ; git rebase --continue"。 9. 然后我尝试了"git push",事情就出错了。似乎没有一种好的方式可以将这个重建的"fix"分支放入我的PR中。
所以我想知道我是否漏掉了什么步骤,或者是否需要更改步骤。我不确定"git push origin"是否正确,或者它是否需要更具体的指定(例如使用分支名称)。在最后一步中是否应该/可以尝试"git push --force"(PR的一部分在我的github仓库中,但很可能没有在其他地方拉取)?
git fetch upstream; git merge upstream/master
吗?因为可能会出现合并提交,所以应该使用变基?通常情况下,我的主分支只跟随上游(然后推送到源),在那里不会发生任何其他事情,所以我想实际上合并和变基效果相同? - user707650master
分支上运行此命令,它将始终快进 - 因为您肯定不会在分叉中提交任何内容,对吧?无论如何,出于简洁起见,我没有包含这个。在实际开发过程中,我偶尔会执行以下操作:git checkout master; git pull --ff-only upstream master; git push
- 拉取操作结合了获取和合并。 - ThiefMaster