git 不做变基

git does not do rebase

我想将我的功能分支变基为开发分支,所以我这样做了

git checkout feature
git rebase dev

然后我得到

Current branch feature is up to date

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

进一步

git checkout dev
git log

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

我假设 dev 是您的主要分支。

如果您最初从 dev 分支 feature(或与 dev HEAD 处于同一提交点的另一个分支)并且自那以后没有对 dev 提交任何更改分支,当在 feature 内时(就像您通过结帐一样)如果您变基到 dev,则不会发生任何事情。 HEADdev 的提交已经是 feature 的基本提交。

如果已对 dev 进行了提交,则变基将具有变基特性到新的 dev HEAD.

您不想变基 dev,如果需要,您可以变基 feature 分支(如果 dev 在处理您的功能时发生了更改),然后合并变基后的功能分支回到 dev.

这是我的流程,假设 dev 是我的主要分支:

git checkout dev
git checkout -b feature

现在我在我的功能分支中。我对功能分支提交了一些更改,也许 dev 在此期间发生了变化。仍在功能分支上,因此改回 dev 以查找任何更改

git checkout dev
git pull origin dev

所以开发发生了变化,所以我想重新设置我的功能分支

git checkout feature
git rebase dev

现在我准备将我的功能分支合并回开发

git checkout dev
git merge --squash feature

Squash 是可选的,但它会在合并回开发时将功能分支中的更改压缩为单个提交。

最后,把新开发者推回去让其他人享受

git push origin dev