正如我在Q-title中提到的,我有一些文件名中包含date
字符串或日期+时间时间戳的文件,这些文件位于Git配置的项目中。
带有日期或时间戳(date+time)的文件名如下:
....
....
FileName1_18-07-2022.php
FileName2_18-07-2022_10-28-17_PM.vue
FileNameOther1_18-07-2022_10-28-28_PM.vue
....
....
并且有超过20个这样的文件,我希望在Git检测中永久忽略它们。文件名可以有数字,但是当文件名中包含确切的日期格式字符串(如上面的例子所示)时,无论何时创建/修改,它们都不能被Git检测到。
我知道有两种方法,一种是.gitignore
,另一种是在项目的.git/info/exclude
中,我知道*
和?
等通配符,但不知道如何阻止那些名称中有日期或日期+时间的文件。
谁能帮我解决这个问题?
注意:"_PM"或";_AM"是可选的,显然只有当文件名包含完整的日期+时间字符串时,它们才会出现。date或date+time字符串将始终按照上面列表所示的精确模式。没有其他的日期/日期+时间模式。
添加到您的.gitignore
:
*_??-??-????[._]*
这将匹配日期后跟点或下划线的文件,并且不太可能匹配其他任何内容。
在John Kugelman的回答和turek的一些不错的评论建议的帮助下,我想出了一个从1000年到9999年不会有任何问题的模式;)。因此,这完全匹配我在项目中拥有的所有文件名模式并成功忽略这些文件,当该模式添加到.gitignore
或.git/info/exclude
文件时:
*_[0123][0-9]-[01][0-9]-[1-9][0-9][0-9][0-9][._]*.php
*_[0123][0-9]-[01][0-9]-[1-9][0-9][0-9][0-9][._]*.vue
如果有人想阻止所有的文件扩展名,那么他们可以使用这个:
*_[0123][0-9]-[01][0-9]-[1-9][0-9][0-9][0-9][._]*.*
感谢John和turek的帮助。任何有任何建议或指出的人都可以在下面的评论中提到。