2010-09-03 10 views
251

Jestem świadomy używania pliku .gitignore, aby wykluczyć niektóre pliki dodawane, ale mam kilka plików config.php w drzewie źródłowym i muszę wykluczyć tylko jeden, znajdujący się w katalogu głównym, podczas gdy inne pozostań pod kontrolą rewizji.Jak wykluczyć plik tylko z folderu głównego w Git

Co powinienem napisać na .gitignore, aby to się stało?

Odpowiedz

382

Z documentation:

Jeżeli wzorzec nie zawiera ukośnik/git traktuje je jako powłoki glob wzór i kontroli na mecz z nazw plików w stosunku do lokalizacji pliku .gitignore (w stosunku do poziomu roboczego drzewa pracy, jeśli nie pochodzi z pliku .gitignore).

Prowadzące ukośnik dopasowuje początek ścieżki. Na przykład "/*.c" pasuje do "cat-file.c", ale nie "mozilla-sha1/sha1.c".

Więc należy dodać następującą linię do korzenia .gitignore:

/config.php 
+1

Dziękujemy! Próbowałem tego w ten sposób, ale z jakiegoś powodu to nie zadziałało. Prawdopodobnie błędnie gdzieś coś =) –

+1

Co zrobić, jeśli nie jest to plik, ale folder, i chcę zignorować ten folder w reporze root, jego zawartych plików i wszystkich potomnych podfolderów i ich plików? '/ folder /'? – CoDEmanX

+3

Albo '/ folder /' lub '/ folder' będzie działał, ale dodanie slasha na końcach ogranicza dopasowanie tylko do folderów. Gdybyś miał plik o nazwie 'foo' w katalogu głównym, '/ foo /' nie zignorowałoby go, ale '/ foo' zrobiłby to. – tehDorf

64

Użyj /config.php.

8

Jeśli powyższe rozwiązanie nie zadziała, spróbuj tego:

#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

Starsze wersje git wymagają Najpierw zdefiniuj wzór ignorowania i natychmiast (w następnym wierszu) zdefiniuj wykluczenie. [Testowane na wersji 1.9.3 (Apple Git-50)]

wersje
/config.php 
!/*/config.php 

Późniejsze tylko wymagają następujące [testowane na wersji 2.2.1]

/config.php 
Powiązane problemy