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

ham*_*lin 13 git github git-submodules

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

我怎样才能做到这一点?

Eng*_*eer 5

在我的子模块中,/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 的回答创建自定义操作。

注:这是一样的“停止跟踪”,其中origin的确也停止跟踪上提交的文件-不是你想要的。


lar*_*sks 2

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

如果您只想要几个文件并且对跟踪第三方项目的更改历史记录不感兴趣,也许您应该将特定文件复制到您的项目中并称之为完成。

  • 谢谢回答。不幸的是,我仍然想跟踪更改并根据需要推/拉子模块(第 3 方库是我自己的) (2认同)
  • 我很欣赏这个。我认为情况就是如此(我有一个类似的问题 - 我开发了一个子模块库,每个模块都有大量用于单元测试的额外代码。我真的只需要 .m 和 .h 文件。其余的,我可以留下)。 (2认同)