当我尝试通过添加子模块
git submodule add git@domian:repo.git contact
我收到以下消息:
以下路径被您的.gitignore文件之一忽略:
联系人
如果真的要添加-f,请使用-f。
这是我的.gitignore
:
# Ignore everything
*
# But not these files:
!*.py
!*.md
!*.gitignore
!.gitmodules
!contact/
使用建议的-f
选项可以解决此问题,但是我很好奇为什么!contact/
中的.gitignore
条目不能缓解问题。
答案 0 :(得分:0)
在您的特定情况下,我没有遇到该错误(我的git版本为2.21.0.windows.1)。
尽管我尝试在父存储库之外添加子模块时确实遇到了该错误(显然不支持):
$ git submodule add https://github.com/user/repo ../repo
The following path is ignored by one of your .gitignore files:
../repo
Use -f if you really want to add it.
最好的猜测是它是一个错误...因此在您的!contact/
中添加.gitignore
并不能解决问题,因为它实际上并不是引起问题的.gitignore
。
您有什么git版本?您可以下载source code for your particular version,搜索错误消息(例如v2.21中的here it is),并跟踪代码以找出实际出了什么问题。
答案 1 :(得分:0)
子模块由gitlink (a special entry 160000 in the Git repository index)和.gitmodules中的远程URL +路径组成。
因此,排除!contact/
仍会忽略gitlink“ contact
”(它不是文件夹contact/
,而是特殊的“ 文件”)>
这样做会更好,并允许git submodule add
继续进行:
!contact
如果还有其他原因仍会阻止git submodule add
,则next Git 2.26 (Q1 2020) will provide a more helpful error message。