Git:将文件移动到现有的子模块中

时间:2014-08-22 20:15:53

标签: git git-submodules

如何将主仓库中的文件和文件夹移动到现有子模块中?我可以以某种方式保存历史吗?

1 个答案:

答案 0 :(得分:1)

假设你的repos只有一个分支:拿你的子模块仓库,把你的主仓库添加为第二个远程,获取历史记录并删除除了所选文件之外的所有内容。将结果合并到主存储库分支。

在这里"删除"可能意味着两件事。一个简单的git rm将创建一个干净的HEAD,但删除的文件将保留在历史记录中。或git filter-branch能够创建仅包含所选文件的新历史记录。

在您的主存储库中,您有基本相同的选项。使用git rm删除HEAD中已移动的文件,或使用git filter-branch将其从整个历史记录中删除。