master rebase 后 Git 分支看不到变化

标签 git rebase

我对我的 master 分支进行了 rebase ,但我期望发生的事情并没有发生。这可能是我理解上的差距所以让我解释一下我的设置:

我有以下分支:

                                4---O---X
                               /
                          3---O
                         /
                    2---O
                   /
          1---O---O
         /
O---O---N---O---O---O

当在第 4 个分支上 checkout 时,我的站点正在运行,并且我在所有其他分支中所做的每一个更改都在运行,包括 master 分支,直到创建第一个分支 (N) 为止。如您所见,我在第一个分支之后向 master 分支添加了更多提交,因此在最后一个分支(或除 master 以外的任何分支)上这些提交不可用。

我希望能够看到最后一个分支上的其他提交,并保持分支当前的状态,master 的 rebase 也是如此,所以第一个分支的尖端将像这样指向 master 分支的末尾:

                                            4---O---X
                                           /
                                      3---O
                                     /
                                2---O
                               /
                      1---O---O
                     /
O---O---N---O---O---O

我通过检查第一个分支并执行 rebase master 来完成此操作。这似乎有效,但我没有在第 4 个分支中看到 master(过去 N)的后续提交。这就是我认为会发生的事情。我只在第一个分支中看到它们。

所以我的问题是为什么 rebase 没有像我预期的那样工作?以及如何让 master 中的更改超过 N 点以显示在我的第 4、3 和 2 分支中。

最佳答案

1 rebase 到 master 后,您必须:

  • rebase 21
  • rebase 32
  • rebase 43

但由于它会给您带来麻烦,或者,您可以使用发布分支,您可以在其中 merge 要包含在发布中的所有分支。 或者,您可以从 master 中挑选到 branch-4。或者您可以从 master merge 到 branch-4。

但我担心,如果您希望您的图形看起来像您在问题中显示的图形,那么您别无选择,只能执行 4 个 rebase 操作。

一般来说,为了更好地了解您的提交图的外观,请尝试使用:

$ git log --graph --oneline --all 

或者更好,试试 git front-ends 之一

关于master rebase 后 Git 分支看不到变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25785398/

相关文章:

android - 配置 IntelliJ IDEA,以便在 git 中检测到源但检测到未注册的 Vcs 根

git - Git 中的 merge 、存储和 rebase 在概念上有何区别?

GitKraken 无法连接到 SSH。无效的 key

git - 使用 git commit --edit-message 时如何编辑提交日期?

git - 如何 git backport (rebase/cherry-pick) 一个已经 merge 的分支

git - 我可以在 git 中默认关闭快速转发吗?

Git: pull 一个重新设置的分支

git:重新定位时冲突提交去了哪里

git - Git 中有某种反向挑选吗?

python - merge 期间在 Git 中集成缩进和内容更改 : Best practices?