将旧 GIT 分支展平以掌握
Flatten old GIT branches to master
我有一个 GIT 项目,其中包含 master 分支和几个其他分支。所有这些额外的分支只包含一个提交:
-- a -- b -- c
/ / /
-- A -- B -- C -- D -- E -- F -- G
我想将此 GIT 存储库展平,使其仅包含 master 分支,并保留其他分支的信息,如下所示:
-- A -- B -- a -- C -- D -- b -- E -- c -- F -- G
如何做到这一点?
你可以挑选(可能与 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
我有一个 GIT 项目,其中包含 master 分支和几个其他分支。所有这些额外的分支只包含一个提交:
-- a -- b -- c
/ / /
-- A -- B -- C -- D -- E -- F -- G
我想将此 GIT 存储库展平,使其仅包含 master 分支,并保留其他分支的信息,如下所示:
-- A -- B -- a -- C -- D -- b -- E -- c -- F -- G
如何做到这一点?
你可以挑选(可能与 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