Как исключить файл только из корневой папки в Git
Мне известно использование файла .gitignore
для исключения некоторых добавляемых файлов, но у меня есть несколько файлов config.php
в исходном дереве, и мне нужно исключить только один, расположенный в корне, в то время как другие сохраняют контроль над версиями.
Что я должен написать в .gitignore
, чтобы это произошло?
Ответы
Ответ 1
В документации :
Если шаблон не содержит косой черты /, git рассматривает его как шаблон оболочки оболочки и проверяет соответствие имени пути относительно местоположения файла .gitignore (относительно верхнего уровня рабочего дерева если не из файла .gitignore).
Ведущая косая черта соответствует началу пути. Например, "/*.c" соответствует "cat-file.c", но не "mozilla-sha1/sha1.c".
Итак, вы должны добавить следующую строку в свой корень .gitignore
:
/config.php
Ответ 2
Используйте /config.php
.
Ответ 3
В старых версиях git требуется сначала определить шаблон игнорирования и сразу (на следующей строке) определить исключение. [проверено на версии 1.9.3 (Apple Git -50)]
/config.php
!/*/config.php
В более поздних версиях требуется только следующее: [проверено на версии 2.2.1]
/config.php
Ответ 4
Если приведенное выше решение не работает для вас, попробуйте следующее:
#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