Git 变基 returns 但没有任何反应

Git rebase returns but nothing happens

我正在尝试将我的功能分支重新设置为开发分支(git rebase develop 在签出分支后)但每次尝试时我都收到消息:
Current branch feature/my-feature-branch is up to date
但是检查 develop 显示 git 日志没有任何变化。
非常感谢任何指点,谢谢。

好吧,假设 develop 可能对遥控器进行了更改,而您 还没有 在本地 develop 分支中进行更改,那么您对no-op 可能需要变基。在这种情况下,您可以先从远程获取,然后在跟踪分支上变基,例如

# from your feature branch
git fetch origin
git rebase origin/develop

如果您真的想 git rebase develop 并让它工作,那么您将不得不通过拉动单独使 develop 与遥控器保持同步。

请注意,如果上述没有解决问题,那么可能您 develop 中没有任何更改,这与您的预期相反。

这里好像有误会

如果你在 develop 之上 rebase 一个功能分支,develop 不会发生任何事情

所以之后检查 develop 会正确地告诉你没有任何改变。这是意料之中的。变基不会改变你变基的分支。

相反,它可能会更改您正在变基的分支,在本例中是您的功能分支。

让我们举个例子,从这个开始:

                 develop
                    v
1---2---3---4---5---6
         \
          7---8---9
                  ^
               feature

如果您现在查看功能分支并将其变基到开发之上,您最终会得到:

git checkout feature
git rebase develop

                 develop
                    v
1---2---3---4---5---6
                     \
                      7'--8'--9'
                              ^
                           feature

但请注意,没有任何进展。

我用撇号标记了 7-8-9 提交,以表明这些实际上是新提交,它们将从最初的 7-8-9 提交创建,但它们将有新的父项,因此会有新的哈希值。

您收到的 git 消息,Current branch feature/my-feature-branch is up to date 意味着您在执行变基命令时已经处于最后一种情况。 你的功能分支已经在开发之上,所以没有什么可做的。

为了真正改变开发,你要么做一个合并,最终会是这样的:

git checkout develop
git merge --no-ff feature

                             develop
                                v
1---2---3---4---5---6-----------M
                     \         /
                      7---8---9
                              ^
                           feature

或 fast-forward 合并,结果如下:

git checkout develop
git merge --ff-only feature

                             develop
                                v
1---2---3---4---5---6---7---8---9
                                ^
                             feature