Git rebase 返回但没有任何反应

Dar*_*ar1 2 git rebase

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

ang*_*son 6

这里似乎有一个误会。

如果您在开发之上重新建立功能分支,则开发不会发生任何事情

因此,事后检查开发将正确地显示您没有任何变化。这是预料之中的。变基不会改变您变基的分支。

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

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

                 develop
                    v
1---2---3---4---5---6
         \
          7---8---9
                  ^
               feature
Run Code Online (Sandbox Code Playgroud)

如果您现在检查功能分支并将其重新设置为开发之上,您最终会得到以下结果:

git checkout feature
git rebase develop

                 develop
                    v
1---2---3---4---5---6
                     \
                      7'--8'--9'
                              ^
                           feature
Run Code Online (Sandbox Code Playgroud)

但请注意,没有发生任何发展。

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

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

为了真正改变开发,您可以进行合并,最终结果如下:

git checkout develop
git merge --no-ff feature

                             develop
                                v
1---2---3---4---5---6-----------M
                     \         /
                      7---8---9
                              ^
                           feature
Run Code Online (Sandbox Code Playgroud)

或者快进合并,最终结果如下:

git checkout develop
git merge --ff-only feature

                             develop
                                v
1---2---3---4---5---6---7---8---9
                                ^
                             feature
Run Code Online (Sandbox Code Playgroud)