子文件夹的Git存储库

时间:2012-07-07 11:19:16

标签: git repository subdirectory

我有一个拥有存储库的项目。 我有回购的根文件夹,

/A
  /A1
  /A2
/B
  /B1

我想将A文件夹分成另一个存储库,然后我想要另一个存储库,它看起来与上面描述的完全相同,但是我希望文件夹A是存储库的子模块,而不是文件夹A.我刚刚创建的。所以A是一个独立的项目,另一个repo依赖于子模块A,但也包含B.

我该怎么做?或者我是否必须创建一个丢失所有提交的全新项目?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以克隆存储库并使用git filter-branch从存储库中删除不需要的历史记录。之后,您可以将A作为子模块添加到B。

编辑:按照github指南操作后,执行

git filter-branch --tree-filter "rm -rf A" --prune-empty HEAD从B中删除A的历史记录。

修改:This所以问题有一个全面的答案。