假设我正在研究feature0
并发出请求请求。在等待批准之前,我要研究feature1
,它基于feature0
。
git checkout -b feature0
# make some changes
git commit -a -m "add feature 0"
git push origin feature0
这时,我发出拉取请求,然后分支到feature0
:
# current branch is `feature0`
git checkout -b feature1
# make some changes
git commit -a -m "add feature 0"
git push origin feature1
现在feature0
被合并到master中,并且feature1
包含feature0
的更改。因此git log
会显示以下内容:
... add feature 1
... add feature 0
... some commit in master
我不希望feature0
中的更改显示在拉取请求中,因此在发出拉取请求之前,我需要重新定基:
git rebase master
虽然这将产生所需的效果,但问题是我必须在打开拉取请求之前先用力推动。
git push origin feature1 -f
现在我的问题是,这是在基于另一个正在合并的分支的分支上工作的正确方法,还是可以以更优雅的方式完成(不需要强制推送到远程存储库,我认为使用rebase
时不可避免。
该问题基于this one。但是,在接受的答案中,省略了特定的命令,并且没有提及将更改推送到远程存储库的问题。