将旧的GIT分支展平以掌握

时间:2015-07-07 14:16:50

标签: git branch

我有一个带有master分支和其他几个分支的GIT项目。所有这些额外的分支只包含一个提交:

          -- a      -- b -- c
         /         /    /
 -- A -- B -- C -- D -- E -- F -- G

我希望将此GIT存储库展平为仅包含具有其他分支的保留信息的主分支,如下所示:

-- A -- B -- a -- C -- D -- b -- E -- c -- F -- G

怎么可以这样做?

1 个答案:

答案 0 :(得分:1)

你可以挑选(可能是for-each-rev IIRC)

如果你知道不会有任何(新的)冲突:

git cherry-pick $(git for-each-ref -- --glob refs/heads | cut -d\  -f1)

git for-each-ref --shell --format="git cherry-pick %(refname)" refs/heads |sh