正如标题所说,是否有可能向 gitignore 文件中添加“不带圆点的文件”?
我想这样就能解决那些烦人的没有扩展名的文件了。
你可以试试这样的组合:
* !/**/ !*.*
gitignore排除规则(一个 否定模式)应该忽略所有文件,除了那些带有扩展名的文件。
gitignore
正如 疯狂物理学家提到的 下面,规则是:
如果文件的父目录被排除在外,就不可能重新包含该文件。 (*) (*: 除非在 git2. ? + 中满足某些条件,见下文)
*
这就是为什么如果我们想要白名单文件,!/**/是重要的(递归地白名单父文件夹)。
!/**/
我在类似的案例中提到了同样的规则,比如:
作为 Jakub Nar bski 评论,您可能不希望忽略 所有无扩展文件。
我的建议是:
.gitignore
对于任何您想要版本的未来无扩展文件:
git add -f -- myFile
请注意,git 是2.9。X/2.10(2016年年中?),如果文件的父目录被排除在 如果重新包含的路径中没有通配符,则为之外,则可能重新包含该文件。
Nguy n Thái Ng Coy (pclouds) 正在尝试添加这个功能:
pclouds
然而,由于重新纳入的规则之一是:
Re-include 规则中的目录部分必须是原义的(即没有通配符)
反正在这里也没用。
* !*/ !*.*
*告诉 git 忽略一切。
然后,!*/取消忽略目录中的任何内容。这是至关重要的。
!*/
!*.*取消忽略所有带扩展名的文件。
!*.*
如果没有 !*/规则,名称中没有 .的目录将不会被列出,您所需要的任何文件都不会添加到根文件夹之外。
.
作为参考,请阅读 。吉蒂诺尔文件中的以下两节:
可选的前缀“ !”否定模式; 任何匹配的文件 被以前的模式所排除的资料将会再次被包括在内 如果文件的父目录为 Git 没有为性能列出被排除的目录 原因,所以包含的文件上的任何模式都没有效果,无论 在它们被定义的地方。在第一个前面放一个反斜杠(“”) 例如,对于以“ !”开头的模式, “ ! 重要! . txt”。 如果该模式以斜杠结束,则为了 但它只能找到与 换句话说,foo/将匹配目录 foo 和路径 但不会匹配常规文件或符号链接 Foo (这与一般的 pathspec 工作方式是一致的 Git).
可选的前缀“ !”否定模式; 任何匹配的文件 被以前的模式所排除的资料将会再次被包括在内 如果文件的父目录为 Git 没有为性能列出被排除的目录 原因,所以包含的文件上的任何模式都没有效果,无论 在它们被定义的地方。在第一个前面放一个反斜杠(“”) 例如,对于以“ !”开头的模式, “ ! 重要! . txt”。
如果该模式以斜杠结束,则为了 但它只能找到与 换句话说,foo/将匹配目录 foo 和路径 但不会匹配常规文件或符号链接 Foo (这与一般的 pathspec 工作方式是一致的 Git).
在我的文件夹中有很多带有 *.c, *.h, *.txt, *.csv等扩展名的文件和没有任何扩展名的二进制文件。所以我需要忽略除了 *.c,*.h和 .gitignore之外的所有文件,所以这对我来说是可行的,从 .gitignore的例子来看:
*.c, *.h, *.txt, *.csv
*.c,*.h
*/* #ignore all files in each directory !*/*.c #unignore .c files in each directory !*/*.h #unignore .h header files in each directory !.gitignore #unignore .gitignore