ti-enxame.com

Como excluir o arquivo somente da pasta raiz no Git

Estou ciente de usar o arquivo .gitignore para excluir alguns arquivos que estão sendo adicionados, mas eu tenho vários arquivos config.php na árvore fonte e preciso excluir apenas um, localizado na raiz, enquanto outros permanecem sob controle de revisão.

O que devo escrever em .gitignore para que isso aconteça?

329
Pavel Karoukin

Do documentação :

Se o padrão não contiver uma barra /, o git o tratará como um padrão shell glob e verificará uma correspondência com o nome do caminho relativo ao local do arquivo .gitignore (relativo ao nível superior da árvore de trabalho, se não de um .gitignore Arquivo).

Uma barra inicial corresponde ao início do nome do caminho. Por exemplo, "/*.c" corresponde "cat-file.c", mas não "mozilla-sha1/sha1.c".

Então você deve adicionar a seguinte linha à sua raiz .gitignore:

/config.php
497
Manoj Govindan

Use /config.php.

74
Richard Fearn

Versões mais antigas do git requerem que você primeiro defina um padrão de ignorar e imediatamente (na próxima linha) defina a exclusão. [testado na versão 1.9.3 (Apple Git-50)]

/config.php
!/*/config.php

Versões posteriores requerem apenas o seguinte [testado na versão 2.2.1]

/config.php
24
kenhowardpdx

Se a solução acima não funcionar para você, tente isto:

#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
14
drugan