从主服务器到主服务器上的早期节点的rebase分支

时间:2014-03-12 14:10:50

标签: git branch rebase

假设我有以下图表:

   800      9ff
    v        v
----o--o--o--o--o--o <-master
              \
               o--o--o <-feature

我希望在命令之后出现以下状态:

   800      9ff
    v        v
----o--o--o--o--o--o <-master
     \
      o--o--o <-feature

那么我如何在同一个分支上反击呢?你能否按照指定的确切分支和3个字符长的哈希给出一个确切的答案?

非常感谢。

2 个答案:

答案 0 :(得分:1)

这是rebase --onto的用途。在feature上,执行此操作:

git rebase --onto 800 9ff

将您所在的分支(feature)从9ff移动到800。

答案 1 :(得分:0)

我认为以下应该做你想做的事。

git checkout 800
git cherry-pick 9ff..feature
git checkout -b newfeature

结果图表看起来像

   800      9ff
    v        v
----o--o--o--o--o--o <-master
     \        \
      \        o--o--o <-feature
       \              \
        \      (The same commit)
         \           /
          \         /
           \       /
            o--o--o <-newfeature

删除feature分支并重命名newfeature分支可以获得您想要的图表。