我正在努力确保不会弄乱我一直在研究的大型功能分支。我有两个遥控器:
origin - with branch dev
my - a fork of origin, with my branch dev
因此,工作流程是获取源,拉入我的源开发,从中分支,向上推,并将分支合并到源开发:
# On my dev
git fetch origin
... received new stuff...
git pull origin dev
我有一个依赖于未合并的其他分支功能的功能。所以,我这样做了:
# On my dev
git checkout -b first-feature
git checkout -b second-feature-based-on-first-feature
从这里开始,我一直在遵循我们的正常工作流程,当 origin dev 更新时,我们会在此基础上重新建立我们的分支:
git checkout first-feature
git pull --rebase origin dev
git push my first-feature -f
然后我会将第一个分支拉到我的第二个分支下:
git checkout second-feature-based-on-first-feature
git pull --rebase my first-feature
git push my second-feature-based-on-first-feature -f
今天 first-feature 被合并到 origin dev 中。我预计第二个功能在 github 上的拉取请求,它显示了两个提交(第一个功能和第二个功能),基本上现在才显示第二个功能。但事实并非如此。我在 origin dev 上重新设置了第二个功能,虽然一切看起来都很好,但我很担心这一点。我是否只是强制推动第二个功能?
我知道这有点具体。我想我的问题是:这应该如何工作,我哪里出错了(如果有的话)?我试图按照其他答案来建立一个分支,但这是一个陌生的领域,我不想犯一个巨大的错误。