我知道使用.gitignore
文件来排除添加的某些文件,但是我config.php
在源代码树中有几个文件,我只需要排除一个位于根目录中的文件,而其他文件则受版本控制。
我应该写些什么.gitignore
来实现这一目标?
我知道使用.gitignore
文件来排除添加的某些文件,但是我config.php
在源代码树中有几个文件,我只需要排除一个位于根目录中的文件,而其他文件则受版本控制。
我应该写些什么.gitignore
来实现这一目标?
Answers:
从文档中:
如果该模式不包含斜杠/,则git将其视为shell glob模式,并检查相对于.gitignore文件位置的路径名是否匹配(如果不是来自.gitignore,则相对于工作树的顶层)文件)。
前导斜杠与路径名的开头匹配。例如,“ / *。c”匹配“ cat-file.c”,但不匹配“ mozilla-sha1 / sha1.c”。
因此,您应该在根目录中添加以下行.gitignore
:
/config.php
/folder/
?
/folder/
或/folder
将工作,但在两端加上斜杠限制了比赛唯一的文件夹。如果您在根目录中有一个名为“ foo”的文件,则/foo/
不会忽略它,但是/foo
会忽略它。
git rm --cached <file>
,否则该文件将不会被忽略。来自:stackoverflow.com/a/1274447
较旧版本的git要求您首先定义忽略模式,然后立即(在下一行)定义排除。[在版本1.9.3(Apple Git-50)上进行了测试]
/config.php
!/*/config.php
更高版本仅需要以下内容[已在2.2.1版上测试]
/config.php
如果上述解决方案对您不起作用,请尝试以下操作:
#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
/config.php
仅此一个无效。我很好奇为什么没有。你有想法吗?
~/.gitignore
在自己的计算机上是否有不同的文件,对吗?