git将所有分支的所有内容上移一级

时间:2018-10-31 05:29:27

标签: git git-filter-branch

我想将git存储库中的所有内容上移一个级别,并需要将其应用于我拥有的每个分支。从字面上看,我有:

+--repo
+----+.git
+----+folder
+--------+ A
+--------+ B

我只想:

+--repo
+----+.git
+----+A
+----+B

此帖子How can I move all git content one-level up in the folder hierarchy?有一个不错的答案,建议您这样做:

git mv folder/* ./ -k

现在如何处理所有分支?我可以想到:

  • 在主服务器上先执行git mv,然后对所有主机进行git rebase

  • 对所有分支机构使用git mv吗?

一个人比另一个人有优势吗?我还看到了一些基于git filter-branch --index-filter(答案here)的答案,但不了解如何将其应用于我的案例。

谢谢!

1 个答案:

答案 0 :(得分:6)

我会使用new git filter-repodoes replace the old git filter-branch or BFG

many usage examples随附,包括基于路径的过滤,以便您将文件夹内容移至顶部(假设顶部目录仅包含文件夹)

cd /path/to/second/clone
git filter-repo --path-rename folder/:

默认情况下,git filter-repo适用于所有分支。