正确 Github 变基工作

Correct Github Rebase work

我没有Github方面的经验,所以我希望有人能帮我找出正确的命令序列。

我在 Github 出现这种情况的回购:

------master     
     /
-- dev
     \
      --------extrabranch c11 --- extrabranch c12

也就是说,从 dev 的最后一次提交开始,我在 master 合并了它,然后创建了一个新分支 extrabranch 并向该分支添加了两个提交。 这种情况在Github远程仓库中是一样的,在本地

现在我将 extrabranch 变基到 dev

正在本地尝试:

git rebase dev extrabranch
Current branch extrabranch is up to date.
git pull --rebase
Current branch extrabranch is up to date.

但是提交图和上面一样。 有人可以向我解释为什么分支 dev 不包含 rebased extrabranch 的提交 c11c12 吗?

编辑:我的目标是将 extrabranch 合并到 dev 中,并尽可能干净地删除 extrabranch

让我们看看你的图表。我修改了它以显示提交 c10,这是 masterdev 指向的位置。你的插图没有显示这一点,但根据定义,那里必须有一个提交。

-- c10 [master, dev]
     \
      --- c11 --- c12 [extrabranch]

git rebase 的目的是根据图中的特定点移动提交。您是在告诉 git 将 extrabranch (c11 + c12) 变基到 dev (c10)。但是,extrabranch已经基于dev,所以没什么可做的。

您说您的目标是将 extrabranch 合并到 dev,然后尽可能干净地删除 extrabranch。最简单的方法是合并它。因为途中没有冲突,所以会使用fast-forward合并。

git checkout dev
git merge extrabranch

这会将 dev 分支移动到 c12 所在的位置。

-- c10 [master]
     \
      --- c11 --- c12 [extrabranch, dev]

之后你应该可以删除 extrabranch 如果你想的话。

git branch -d extrabranch
-- c10 [master]
     \
      --- c11 --- c12 [dev]

这是假设 dev 上没有上游提交,您的 post 没有显示。不过,您可以使用 pullfetch 来计算。