2010-09-03 6 views
251

Мне известно, что файл .gitignore используется для исключения некоторых добавляемых файлов, но у меня есть несколько файлов config.php в исходном дереве, и мне нужно исключить только один, расположенный в корне, в то время как другой держать под контролем ревизии.Как исключить файл только из корневой папки в Git

Что я должен написать в .gitignore, чтобы это произошло?

ответ

382

От documentation:

Если шаблон не содержит слэш /, Git трактует как шаблон Глоб оболочки и проверки на матч против имени относительно расположения файла .gitignore (относительно объема рабочего дерева, если не из файла .gitignore).

Ведущая косая черта соответствует началу пути. Например, «/*.c» соответствует «cat-file.c», но не «mozilla-sha1/sha1.c».

Таким образом, вы должны добавить следующую строку в корень .gitignore:

/config.php 
+1

Спасибо! Я пробовал это так, но по какой-то причине это не сработало. Возможно, что-то неясно где-то =) –

+1

Что делать, если это не файл, а папка, и я хочу игнорировать эту папку в корне репо, содержащихся в нем файлах и всех потомственных подпапках и их файлах? '/ Папка /'? – CoDEmanX

+3

Либо '/ folder /', либо '/ folder' будет работать, но добавление косой черты в конце ограничивает соответствие только папкам. Если в корневом каталоге есть файл с именем 'foo', '/ foo /' не будет игнорировать его, но '/ foo' будет. – tehDorf

64

Использование /config.php.

8

Если вышеуказанное решение не работает для вас, попробуйте следующее:

#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 
15

Старые версии мерзавца требуют вы сначала определяете шаблон игнорирования и сразу (на следующей строке) определяете исключение. [Проверено на версии 1.9.3 (Apple Git-50)]

/config.php 
!/*/config.php 

Более поздние версии требуют только следующие [проверено на версии 2.2.1]

/config.php 
Смежные вопросы