我们一直在研究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
答案 0 :(得分:16)
子代(子模块)的git父级将在提交时跟踪子模块的分支和标记ID。这将确保当您签出父级(已知版本)时,子模块也将包含其正确的标签。
如上所述,它恰好是一个被忽略的子目录,那么基本上这些是两个独立的git repos,好像它们不是文件系统层次结构的一部分。