Jak zignorować rekursywnie wszystkie ukryte katalogi / pliki w repozytorium git?


132

Chciałbym, aby Git ignorował wszystkie ukryte pliki i katalogi. to znaczy

  • .aptitude
  • .ssh/
  • .bash_rc
  • config/.hidden

Czy istnieje prosta zasada, która obejmuje to bez konieczności dodawania każdego wpisu?

Odpowiedzi:


169

Po prostu dodaj wzór do .gitignore

.*
!/.gitignore

Edycja: Dodano .gitignoresam plik (ma znaczenie, jeśli nie został jeszcze zatwierdzony).


3
Możesz chcieć wymusić dodanie niektórych plików, które są potem potrzebne. na przykład. plik .htaccess. Oczywiście w oparciu o Twoje wymagania.
dakdad,

3
@dakdad: Dzięki za sugestię. Poprawiona odpowiedź. Jeśli Poe ma jakieś specjalne pliki, takie jak .htaccessjuż wpisane, są one śledzone. gitignorejest ważne tylko dla nowych plików.
Daniel Böhmer

@ DanielBöhmer Może to znika z tematu, ale czy jest powód, aby usuwać ignorowanie tylko /.gitignorei nie każdego .gitignorepliku, niezależnie od tego, gdzie się znajduje? To znaczy dlaczego nie wymienić !.gitignore(bez ukośnika)?
Jason Young

1
@JasonYoung Ciekawe pytanie. Cóż, ten wzorzec wyłącza ignorowanie samego pliku. Uważam to za bardziej zwięzłe, bez skutków ubocznych, na przykład do kopiowania i wklejania. Oczywiście możesz prawdopodobnie po prostu anulować ignorowanie wszystkich .gitignoreplików w pliku najwyższego poziomu .gitignore. Ale ten wybór należy do ciebie.
Daniel Böhmer

66

.gitignore wpłynie tylko na pliki, które nie zostały jeszcze „dodane”.

Aby nowe wpisy .gitignore wpływały na wszystkie pliki

  1. Wprowadź zmiany w .gitignore
  2. git commit -a -m "Pre .gitignore changes"
  3. git rm -r --cached .
  4. git add .
  5. git commit -a -m "Post .gitignore changes"
  6. git status powinno wypisać "nic do zatwierdzenia (katalog roboczy czysty)" `

Wiersz "nie został jeszcze 'dodany' jest tutaj kluczowy, ponieważ jeśli już zatwierdziłeś dany plik, ignorowanie już na nim nie będzie działać, musisz go usunąć z repozytorium i następnym razem, gdy go utworzysz, plik .gitignore zignoruje to.
Georgi Peev

21

W .git/info/exclude, dodaj tę linię:

.*

Spowoduje to rekurencyjne ignorowanie wszystkich plików ukrytych / kropkowych jako domyślne dla każdego repozytorium na komputerze. W ten sposób oddzielny .gitignoreplik dla każdego repozytorium nie jest potrzebny.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.