如何将没有点的文件(所有无扩展名的文件)添加到gitignore文件?
正如标题所说,是否可以将“没有点的文件”添加到gitignore文件中如何将没有点的文件(所有无扩展名的文件)添加到gitignore文件?,git,gitignore,Git,Gitignore,正如标题所说,是否可以将“没有点的文件”添加到gitignore文件中 我想这会解决所有那些麻烦的无扩展文件。您可以尝试以下类似的组合: * !/**/ !*.* (a)应该忽略所有文件,除了扩展名为的文件 如所述,该规则为: (*) (*:除非git 2中满足某些条件,请参见下文) 这就是为什么/**/很重要(递归白名单父文件夹) 我在类似的案例中提到了同样的规则,比如: 同样,您可能不希望忽略所有无扩展文件 我的忠告是: 首先添加重要的无扩展文件 然后编辑.gitignore
我想这会解决所有那些麻烦的无扩展文件。您可以尝试以下类似的组合:
*
!/**/
!*.*
(a)应该忽略所有文件,除了扩展名为的文件
如所述,该规则为:
(*
)(
*
:除非git 2中满足某些条件,请参见下文)
这就是为什么/**/如果我们想要白名单文件,代码>很重要(递归白名单父文件夹)
我在类似的案例中提到了同样的规则,比如:
同样,您可能不希望忽略所有无扩展文件
我的忠告是:
- 首先添加重要的无扩展文件
- 然后编辑
.gitignore
,如上所示:已经版本化的文件不会被忽略(即使它们没有扩展名)。所有其他的都将被忽略
对于任何将来要升级的无扩展文件,请执行以下操作:
git add -f -- myFile
请注意,使用git 2.9.x/2.10(2016年年中?),如果文件的父目录被排除,则可能会重新包含该文件
正在尝试添加此功能:
- 对于git v2.7.0,在git v2.8.0-rc0中恢复
- git v2.8.0-rc0,。。。在git 2.8.0-rc4中恢复了(!)
然而,由于重新纳入的规则之一是:
re-include规则中的目录部分必须是文本(即没有通配符)
无论如何,这在这里是行不通的
*
!*/
!*.*
*
告诉git忽略一切
*/代码>然后取消识别任何目录。这是至关重要的
!**代码>取消显示所有具有扩展名的文件
没有*/代码>规则,名称中没有
的目录将不会列出,并且您所需的任何文件都不会添加到根文件夹之外
为了便于参考,请阅读突出部分中的以下两个部分:
可选前缀“!”否定模式;任何匹配的文件
被先前模式排除的将再次被包括。事实并非如此
如果文件的父目录为空,则可以重新包含该文件
排除。Git没有列出性能排除的目录
原因,所以包含的文件上的任何模式都不会产生任何影响
定义它们的地方。在第一行前面加一个反斜杠(\)
“!”例如,对于以文字“!”开头的模式,
“!重要!.txt”
如果图案以斜线结尾,则出于以下目的将其删除:
下面的描述,但它将只找到具有
目录换句话说,foo/将匹配目录foo和路径
在它下面,但与常规文件或符号链接不匹配
foo(这与pathspec在
吉特)
在我的文件夹中,有许多扩展名为*.c、*.h、*.txt、*.csv等的文件,以及没有任何扩展名的二进制文件。因此,我需要忽略所有文件execpt*.c、*.h
和.gitignore
,因此这对我来说是可行的,从.gitignore
示例:
*/* #ignore all files in each directory
!*/*.c #unignore .c files in each directory
!*/*.h #unignore .h header files in each directory
!.gitignore #unignore .gitignore
有些无扩展文件是您不想忽略的:自述文件
、许可证
或复制
、安装
、生成文件
等,尽管您可以强制添加这些文件,然后将其删除tracked@JakubNarębski的观点很好。我已将其包含在我的答案中,以提高可视性。答案的可能副本是完全正确的。但是更好的.gitignore
可能是**
和!***代码>。我知道如果将星号放在前面,这并没有什么区别,但是shell处理通配符的方式更明确、更合理……注意:要使用其他排除规则,这需要是.gitignore文件中的第一组规则。您还可以重新包含某些无扩展文件,例如使用!生成文件
。请注意,我在Git1.7.1中遇到了这个解决方案的问题,而在1.9.0中它运行良好。在我的例子中,在根目录中添加一个文件效果很好,但是在子目录中添加一个扩展名为的文件被显示为已忽略。这似乎是因为1.7.1还不支持**
模式,请参见<代码>**
已添加到Git1.8.2
中。使用有什么缺点吗*/代码>而不是/**/代码>?@TamaMcGlinn看起来像正则表达式:gitignore不支持正则表达式。很好+1.我忘了用我最近在矿山的其他答案中使用的规则更新我的答案。我已相应地更新了我的答案。