将上游git更改与挂起的pull请求合并

Syn*_*hro 14 git github

我一直在GitHub上的常见工作流程中遇到git问题.

  1. 我分叉回购
  2. 我做了一些改变
  3. 我向上游回购提出拉动请求
  4. 当上游开发者坐在我的拉动请求上时,旋转大拇指.
  5. 上游开发人员对其回购进行了更改
  6. 他们会查看您的拉取请求,但由于其树中的更改将不再适用,因此他们会要求您更新拉取请求.
  7. 我从上游获取并合并更改到我的仓库,解决冲突,提交更改
  8. 我在我的拉动请求中重新提交,以使其整洁.

这就是出现问题的地方:我的拉取请求现在包含步骤2和7之间发生的所有更改,包括上游开发人员自己的更改.在最近的一个例子中,它将10行拉取请求扩展到超过12,000行.

我应该如何将我的原始提交重新应用到更高版本的上游仓库而不将其更改进入我的拉取请求?

pie*_*dar 13

改变这个

7)我从上游获取并合并更改到我的仓库,解决冲突,提交更改.

8)我在我的拉动请求中重新提交以使其整洁.

我将我的回购改装到上游,使其整洁.

我们假设你feature从分支分叉upstream/master,我们将使用临时分支是安全的.如果出现问题,只需删除feature-rebase分支并重新开始.

git checkout feature
git checkout -b feature-rebase
git rebase -i upstream/master
Run Code Online (Sandbox Code Playgroud)

这将重播你的提交upstream/master,就像你现在分叉一样.一旦一切看起来不错,用旧feature版本替换旧版本.

git branch -m feature feature-old
git branch -m feature-rebase feature
git branch -d feature-old
git checkout feature
git push -f origin feature
Run Code Online (Sandbox Code Playgroud)

  • 这显然是做到这一点的正确方法,但我很确定我已经让它可怕地爆炸了.也就是说,有一个后续步骤也可能会出现严重错误 - 当我将"原始大师"推给我自己的回购时,你指定`--force`至关重要或者你最终可能会陷入混乱再次. (3认同)