gpt4 book ai didi

git - 如何将一个git分支分成两个分支?

转载 作者:IT王子 更新时间:2023-10-29 00:53:56 26 4
gpt4 key购买 nike

我正在尝试帮助一位不小心从另一个功能分支创建了一个功能分支的同事,而不是从 master 创建第二个功能分支。这基本上就是我们现在所拥有的……

Master ---A---B---C
\
Foo E---F---F---H
\
Bar J---K---L---M

这就是我们想要的……

Master ---A---B---C
|\
Foo | E---F---F---H
|
Bar J---K---L---M

我想到的一种方法是创建 FooV2 和 BarV2 分支,然后将个别提交挑选到适当的 V2 分支中。但是我很好奇,有没有更好的方法来处理这种情况?

最佳答案

要获得比仅仅“运行此命令”更能帮助我们更好地理解事物的更一般的答案,我们需要一个更大的示例。那么,让我们假设您确实处于这种情况:

---A---B---C <= Master
\
E---F---F---H <= Foo
\
J---K---L---M <= Bar
\
N---O---P---Q <= Baz

这就是我们想要的……

---A---B---C <= Master
|\
| E---F---F---H <= Foo
|\
| J---K---L---M <= Bar
\
N---O---P---Q <= Baz

幸运的是,Git 在 rebase 命令的选项中为我们提供了解决方案!

git rebase --onto [newParent] [oldParent] [branchToMove]

这意味着什么可以分解成几个部分:

  1. rebase - 更改某物
  2. 的父级
  3. --onto - 这是告诉 git 使用这种替代 rebase 语法的标志
  4. newParent - 这是您要 rebase 的分支的父分支
  5. oldParent - 这是您要 rebase 的分支当前作为其父分支的分支
  6. branchToMove - 这是您要移动( rebase )的分支

关于“旧父分支”的部分可能有点令人困惑,但它真正在说的是“在进行 rebase 时忽略来 self 旧父分支的更改”。 oldParent 是您定义要移动的分支(即 branchToMove)开始的方式。

那么,在我们的情况下要执行的命令是什么?

git rebase --onto Master Bar Baz
git rebase --onto Master Foo Bar

请注意,这些命令的顺序很重要,因为我们需要从“分支链”的末端 pull 出每个分支。

关于git - 如何将一个git分支分成两个分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12355904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com