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.