我知道使用.gitignore
文件来排除一些正在添加的文件,但我在源代码树中有几个config.php
文件,我只需要排除一个位于根目录中的文件,而其他文件则保留在修订控制。
我应该写.gitignore
来实现这一目标?
答案 0 :(得分:494)
如果模式不包含斜杠/,git将其视为shell glob模式,并检查相对于.gitignore文件位置的路径名匹配(相对于工作树的顶层,如果不是一个.gitignore文件)。
前导斜杠与路径名的开头匹配。例如,“/ *。c”匹配“cat-file.c”但不匹配“mozilla-sha1 / sha1.c”。
因此,您应该将以下行添加到根.gitignore
:
/config.php
答案 1 :(得分:74)
使用/config.php
。
答案 2 :(得分:24)
旧版本的git需要先定义一个忽略模式,然后立即(在下一行)定义排除。 [在1.9.3版(Apple Git-50)上测试]
/config.php
!/*/config.php
以后的版本只需要以下[在2.2.1版本上测试]
/config.php
答案 3 :(得分:14)
如果上述解决方案不适合您,请尝试以下操作:
#1.1 Do NOT ignore file pattern in any subdirectory
!*/config.php
#1.2 ...only ignore it in the current directory
/config.php
##########################
# 2.1 Ignore file pattern everywhere
config.php
# 2.2 ...but NOT in the current directory
!/config.php