*
este un bash glob. Se va extinde la toate fișierele din directorul în care vă aflați, cu excepția fișierelor cu puncte (fișierele care încep cu un punct (.
)).
.
înseamnă directorul curent.
Rezultatul poate fi destul de diferit în funcție de conținutul directorului dvs. și dacă aveți un .gitignore
fişier.
Luați în considerare că aveți următoarele fișiere și directoare în directorul dvs.:
.dotfile-care-trebuie-fie-commit
.git/
.gitignore
un-fișier-care-este-în-gitignore
vreun-alt-dosar
Când alergi git add *
, globul este extins înainte ca comanda git să ruleze. Deci, ceea ce primește comanda git este următorul:
git adăugați un fișier-care-este-în-gitignore un alt fișier
Acest lucru provoacă patru probleme aici.
- Git se va plânge de asta
un-fișier-care-este-în-gitignore
nu poate fi adăugat și vă va cere să adăugați forța (-f
) argument dacă chiar doriți să-l adăugați.
- ambii
.dotfile-care-trebuie-fie-commit
și .gitignore
nu au fost adăugate ca *
nu se extinde la dotfiles.
- Dacă ați șters fișiere din directorul în care vă aflați,
*
nu se pot extinde niciodată la acestea, așa că fișierele șterse nu vor fi puse în scenă.
- Dacă ați redenumit fișierele din directorul în care vă aflați,
*
nu se poate extinde niciodată la vechiul nume, dar se va extinde la cel nou. Deci, ceea ce va vedea git este că ați adăugat un fișier nou și, din moment ce vechiul nume nu a fost pus în scenă, veți ajunge cu același fișier existent de două ori, cu vechiul nume și noul nume.
Cu toate acestea, alergând git add .
îi spune lui git să adauge directorul curent în care vă aflați fără a specifica ce fișier să adăugați. În acest caz, git va verifica .gitignore
fișier și adăugați recursiv toate fișierele care nu sunt menționate în .gitignore
.
În concluzie:
- Ar trebui să folosești
git add .
nu git add *
.
Chiar mai bine:
- Utilizare
git add full/file/paths
astfel încât să nu adăugați lucruri din greșeală care nu sunt gata să fie adăugate.
Si chiar mai bine:
- Utilizare
git add -p
pentru a vă revizui modificările și pentru a alege ce patch-uri doriți să fie adăugate.