我有3间分行
A
(不是由我管理)B
(由我管理)main
我的
B
分支依赖于 A
分支,并且 A
已经被压扁在 main
分支中。我想移动(变基)
B
对应于Squashed A
的评论。git checkout B && git rebase main
对其进行变基,但我有很多冲突需要管理,并且不容易避免问题或错误。
我已经找到了这篇文章,但我有一个已经压扁的分支(不是我压扁的)。
我怎样才能用很少的命令得到这个结果而不用很少的那么多麻烦?
您链接的问题实际上包含您问题的答案:
# With start exclusive, end inclusive
git rebase --onto <where> <current-start> <current-end>
# Presented in a specific way for your case:
# git rebase --onto <squashed-commit> <old-non-squashed-branch-or-revision> <feature-branch>
# That is:
git rebase --onto main A B
这应该为您提供与操作之前
B
完全相同的内容。
您可以通过在执行任何操作之前创建标签并在操作之后使用
git diff <tag-before-ops> B
来进行双重检查。