我有一个项目,它有一个存储库。我有回购的根文件夹,
/A
/A1
/A2
/B
/B1
我想将 A 文件夹分离到一个不同的存储库中,然后我想要另一个存储库,它看起来与上面描述的完全一样,但是我希望文件夹 A 成为存储库的子模块,而不是文件夹 A创建的。这样 A 是一个独立的项目,另一个 repo 依赖于子模块 A,但也包含 B。
我该怎么做?还是我必须创建一个丢失所有提交的全新项目?
已经谢谢了!
我有一个项目,它有一个存储库。我有回购的根文件夹,
/A
/A1
/A2
/B
/B1
我想将 A 文件夹分离到一个不同的存储库中,然后我想要另一个存储库,它看起来与上面描述的完全一样,但是我希望文件夹 A 成为存储库的子模块,而不是文件夹 A创建的。这样 A 是一个独立的项目,另一个 repo 依赖于子模块 A,但也包含 B。
我该怎么做?还是我必须创建一个丢失所有提交的全新项目?
已经谢谢了!
您可以克隆存储库并用于git filter-branch
从两个存储库中删除您不想要的历史记录。之后,您可以将 A 作为子模块添加到 B。
编辑:遵循 github 指南后,执行
git filter-branch --tree-filter "rm -rf A" --prune-empty HEAD
从 B 中删除 A 的历史记录。
编辑:这个SO question 有一个全面的答案。