我在GitHub的常见工作流程中遇到git问题。
这就是出现问题的地方:我的拉取请求现在包含了步骤2和7之间发生的所有更改,包括上游开发人员自己的更改。在最近的一个例子中,这扩展了10行拉取请求到超过12,000行。
我应该如何将我的原始提交重新应用到更高版本的上游回购中而不将其更改进入我的拉取请求?
答案 0 :(得分:12)
更改此
7)我取了&合并从上游到我的仓库的变更,解决冲突,提交变更。
8)我在我的拉动请求中重新提交以使其干净整洁。
到
我将我的回购转移到上游,使其整洁。
我们假设您从feature
分叉upstream/master
分支,我们将使用临时分支来保证安全。如果出现问题,只需删除feature-rebase
分支并重新开始。
git checkout feature
git checkout -b feature-rebase
git rebase -i upstream/master
这将在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
答案 1 :(得分:2)
如果您已经这样做了,我无法解决您的问题,但是当您提交拉取请求时,最简单的方法是为其创建一个单独的分支。
通过这种方式,您可以轻松地定义提交请求中的提交内容,以及稍后还可以更新提取请求以包含新更改。
如果您想要合并来自上游的新更改,您可以获取这些更改,并在其上重新定义主题分支。
在github中发出pull请求时,您可以选择此分支,这样可以确保提取正确的提交。
每次你推到这个分支(甚至push -f)都会自动更新拉取请求。