我想将我的功能分支重新绑定到dev分支,所以我做
git checkout feature
git rebase dev
然后我得到
Current branch feature is up to date
那已经很奇怪了,不应该更新开发而不是功能吗?
进一步
git checkout dev
git log
表示添加的功能没有新的提交。我做错了什么?
和
答案 0 :(得分:1)
我假设dev
是您的主要分支。
如果您从feature
(或与dev HEAD位于同一提交点的另一个分支)初始分支dev
,并且自分支以来未对dev
提交任何更改,如果你在feature
内部进行dev
(如你所做的那样),那么什么都不应该发生。 HEAD
的{{1}}提交已经是dev
的基本提交。
如果已对feature
进行了提交,则rebase会为新的dev
dev
提供重新定位功能。
您不想重新定义HEAD
,如果需要(如果dev
在处理您的功能时feature
已经更改),您可以重新定位dev
分支,然后合并重新定义的功能分支回dev
。
这是我的流程假设dev是我的主要分支:
git checkout dev
git checkout -b feature
现在我在我的功能分支中。我对功能分支提交了一些更改,也许dev在此期间发生了变化。仍然在功能分支上,所以改回dev以寻找任何变化
git checkout dev
git pull origin dev
所以dev上发生了变化,所以我想重新设置我的功能分支
git checkout feature
git rebase dev
现在我已准备好将我的功能分支合并回dev
git checkout dev
git merge --squash feature
Squash是可选的,但它会将功能分支中的更改压缩为合并回dev的单个提交。
最后,推送新的dev以备其他人享受
git push origin dev