具有与OP类似的问题,但排名前10名的答案中没有一个真正起作用。我终于找到了以下]
错误的语法:
* !bin/script.sh
正确的语法:
* !bin !bin/script.sh
来自gitignore man page的解释:
可选的前缀“!”否定了模式;先前模式排除的所有匹配文件将再次包含在内。 如果排除了该文件的父目录,则无法重新包含该文件
。由于性能原因,Git不会列出排除的目录,因此所包含文件上的任何模式,无论它们在何处定义都无效。扩展示例:
# ignore all
*
# but "bin/sub/folder/script.sh"
!bin
!bin/sub
!bin/sub/folder
!bin/sub/folder/script.sh