我有一个Git存储库,如下所示:
A-B-F (master)
|\
C \ (feature-1)
D (feature-2)
\
E (feature-3)
有没有办法自动将所有功能分支(儿童和孙子)自动转换为F,如下所示?
A-B-F (master)
|\
C'\ (feature-1)
D' (feature-2)
\
E'(feature-3)
我查看了Rebasing a branch including all its children和How to rebase a series of branches?的回复,但他们既没有报道这个案例,也没有给出明确的答案。
答案 0 :(得分:3)
anwser与相关问题中的相同:git中没有内置任何内容。您可以手动执行此操作,如下所述。之后,您可以尝试将其放入脚本中......
您可以手动执行此操作:
git checkout feature-1
git rebase master
git checkout feature-2
git rebase master
git checkout feature-3
git rebase feature-2
帮助您开始编写自己的脚本:
git branch --contains <sha-1> | xargs -n 1 | grep -v "\*" | grep -v master
将为您提供包含提交<sha-1>
的所有分支的列表。然后你可以查看this question来找到如何找到第一级后代的代码......将这两个信息放在一起;你能够编写你想要的脚本。