正确 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
的提交 c11
和 c12
吗?
编辑:我的目标是将 extrabranch
合并到 dev
中,并尽可能干净地删除 extrabranch
。
让我们看看你的图表。我修改了它以显示提交 c10
,这是 master
和 dev
指向的位置。你的插图没有显示这一点,但根据定义,那里必须有一个提交。
-- 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 没有显示。不过,您可以使用 pull
或 fetch
来计算。
我没有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
的提交 c11
和 c12
吗?
编辑:我的目标是将 extrabranch
合并到 dev
中,并尽可能干净地删除 extrabranch
。
让我们看看你的图表。我修改了它以显示提交 c10
,这是 master
和 dev
指向的位置。你的插图没有显示这一点,但根据定义,那里必须有一个提交。
-- 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 没有显示。不过,您可以使用 pull
或 fetch
来计算。