在 git 存储库中,我想排除名为
main
的文件,但不排除名为 main.c
的文件。我该怎么做?
如果我将其添加到
.gitignore
文件中:
main
这两个文件都被排除。如何匹配
.gitignore?
中文件名末尾的模式
为未来的读者编辑:我发现我可以将
!main.*
添加到 gitignore,main^
?之类的东西
我明白了
$ cd `mktemp -d`; git init
$ echo main >.gitignore
$ >main; >main.c
$ git add -n .
add '.gitignore'
add 'main.c'
所以我不知道你还想做什么
两个文件都被排除
但无论发生什么,我想我完全按照你的描述做了,但没有得到这些结果。
也许
main
是一个目录?目录排除会立即排除整个内容,无论名称如何,这就是要点:告诉 git 甚至不要在那里查找要跟踪的新文件。如果是这种情况,您可以说 !main/
来停止名为 main
的目录被整个删除。
无论如何,尝试执行
git ls-files -oc | git check-ignore --stdin -v
来查看排除所有排除文件的确切原因,并将 -n
标志添加到 checkignore 以查看所有未忽略的文件,显示之前停止的任何显式不排除规则匹配的。