使用git子模块比在另一个带有gitignore的repo中使用repo有什么好处?

时间:2009-09-22 21:32:51

标签: git github git-submodules

我们一直在研究git子模块,我们想知道使用子模块的存储库有什么优势(如果有的话),在另一个存储库中有一个带有.gitignore文件的存储库。

没有子模块的示例:

mkdir a
cd a
git init
touch test1.txt
echo "b" > .gitignore
git add .
git commit -m "Adding test1.txt and gitignore"

mkdir b
cd b
git init
touch test2.txt
git add .
git commit -m "Adding test2.txt"

git log
cd ..
git log

1 个答案:

答案 0 :(得分:16)

子代(子模块)的git父级将在提交时跟踪子模块的分支和标记ID。这将确保当您签出父级(已知版本)时,子模块也将包含其正确的标签。

如上所述,它恰好是一个被忽略的子目录,那么基本上这些是两个独立的git repos,好像它们不是文件系统层次结构的一部分。