我目前正在将我们的SVN存储库迁移到git,而且我不确定如何处理SVN外部。
我通常会克隆并将它们添加为git子模块,因为我想跟踪更改并将提交推送到子模块的repo。不幸的是,git默认克隆了整个repo,但我只需要它的子目录。
外部回购看起来与此相似。
external/bar/lib/
external/foo/
external/foo.sln
...
所以我考虑使用sparse-checkout
仅将external/bar/lib/
目录克隆到我的主项目中,但我不确定如果我仍然可以执行正常的git操作,例如commit
,使用稀疏结帐时子模块中的push
,pull
和branch
,或者当我还想在我的主项目中包含external/foo/
时如何处理案例。
答案 0 :(得分:0)
理想情况下,external/
的每个相关文件夹应该已经git-svn
导出到各自的Git存储库中:
external/bar/lib/ => lib.git
external/foo/ => foo.git
那样,无需担心稀疏签出(这实际上会限制回退提交的能力)