Git子模块 - 排除特定文件/目录

时间:2012-04-19 12:48:35

标签: git github git-submodules

我正在尝试使用Gits的子模块功能在项目中包含第三方代码。我只需要子模块中的几个文件,并希望排除随附的所有文档等。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

在我的子模块中,我有一个/examples文件夹,我想删除本地,以防止自动生成的makefile看到这些文件; origin不得不忘记删除。

在git CLI中:

git update-index --assume-unchanged <path/to/file>

再次跟踪本地更改:

git update-index --no-assume-unchanged <path/to/file>

或者在SourceTree中,根据Fabian Blechschmidt's answer创建自定义操作。

注意与“停止跟踪”相同,其中origin确实也会在提交时停止跟踪文件 - 而不是您想要的。

答案 1 :(得分:2)

git子模块是嵌入在另一个git存储库中的git存储库。除此之外没有什么特别之处 - 子模块的行为与任何其他git存储库的行为相同。克隆它时,您将获得与存储库关联的所有文件和所有历史记录。

如果您只想要几个文件并且您对跟踪第三方项目的更改历史记录不感兴趣,那么您可能只需将特定文件复制到项目中并将其调用即可。