git不做rebase

时间:2016-10-27 22:14:14

标签: git branch rebase

我想将我的功能分支重新绑定到dev分支,所以我做

git checkout feature
git rebase dev

然后我得到

Current branch feature is up to date

那已经很奇怪了,不应该更新开发而不是功能吗?

进一步

git checkout dev
git log

表示添加的功能没有新的提交。我做错了什么?

1 个答案:

答案 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