git子模块的.git/info/exclude替代方案是什么?

7

我有一个用于下载我的库依赖项的Python脚本(该库已提取为git存储库),它会为git存储库添加.git/info/exclude行。但是,当它作为子模块提取时,不存在.git/info/exclude文件,我仍然需要排除一些路径而不将它们添加到'.gitignore'中。是否有任何更改可以实现这一点?

repo
├─.git
│ └─info
│   └─exclude
└─mylibrary (as_submodule)
  ├─extract_deps.py
  └─some_dep  (created by `extract_deps.py` and should be excluded) 

在上面的图片中,我需要从git更改中排除some_dep
mylibrary/some_dep添加到repo/.git/info/exclude中并没有帮助,因为git status仍然显示mylibrary/some_dep已添加且未跟踪。

可以通过在 .gitsubmodules 中添加 ignore = dirty 来解决子模块的问题。还有更好的解决方案吗? - 4ntoine
1个回答

12

看起来git为模块在 mainrepo/.git/modules/path-to-submodule/info/exclude 中添加了另一个结构。

将路径添加到您的模型中:

    repo
    ├─.git
    │ ├─info
    │ ├─└─exclude
    │ └─modules
    │   └─mylibrary
    │     └─info
    │       └─exclude(用于mylibrary模块)
    └─mylibrary(作为子模块)
      ├─extract_deps.py
      └─some_dep  (由extract_deps.py创建并应该被排除) 
    

希望这可以解决您的问题!这绝对对我有帮助。


请注意,子模块目录中的.git文件是实际存储库位置的文件,而不像Git存储库那样是一个目录。 - 4ntoine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接