我对我的 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
2
到1
- rebase
3
到2
- rebase
4
到3
但由于它会给您带来麻烦,或者,您可以使用发布分支,您可以在其中 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/