我分叉了一个git repo,然后创建了一个名为“strlen。”的分支。
提交公关并进行建议更改后:。
以下是我尝试合并上游变更:
A部分:从上游获取和合并:
git fetch upstream
git merge upstream/master
B部分:压缩上游提交,仅为我的特定更改保留一个提交注释:
git rebase --interactive HEAD~2
注意:对于交互式部分,我对所有提交都进行了s(quash) 除了顶部的最新一个(我的)。
C部分:在github上将更改推回到我的分支:
git push origin strlen
“壁球”似乎没有像这次宣传的那样做:所有干预提交**以及介入文件更改**都在strlen分支上可见。新的Pull请求显示了所有内容,而目的是仅显示我的文件更改。
所以,
的任何提示更新从VonC的最佳答案中,我添加了更多详细信息,这是当前的解决方案:
git remote add upstream https://github.com/foo/bar.git
git checkout master
git fetch upstream
git checkout strlen
# Make changes. If using IJ you can then create CL and commit the CL locally.
# Alternatively simply use command line and do commit -m "Made some updates"
git rebase -i upstream/master # Squash the newer commits into
# the original one used to create the PR
git push -f origin
上述工作流程非常有效。实际上足以解决由我的原始工作流程引起的问题(合并错误)。
答案 0 :(得分:2)
更新PR分支时,您不会合并upstream/master
。
您在更新的upstream/master
:
git fetch upstream
git checkout strlen
git rebase -i upstream/master # you can squash if you want there
git push -f origin
您强制推送,但考虑到strlen
分支的新历史记录,您的PR会自动更新。
详见: