git add. vs git commit -a


Odpowiedzi:


139

git commit -aoznacza prawie [*] to samo co git add -u && git commit.

To nie to samo, co git add .dodanie nieśledzonych plików, które nie są ignorowane, git add -utylko etapy zmian (w tym usunięcia) do już śledzonych plików.

[*] Istnieje subtelna różnica, jeśli nie jesteś w katalogu głównym repozytorium. git add -uObjazdy aktualizacje plików w bieżącym katalogu i poniżej, jest to równoważne git add -u .podczas git commit -aetapów i zobowiązuje zmian wszystkich monitorowanych plików.


3
Zachowanie w [*] zmieni się w git 2.0 dla spójności.
user1284631

2
W jakim kierunku? tj. czy zatwierdzenie -a stanie się podobne do add -u, czy add -u stanie się podobne do zatwierdzenia -a?
Miles Rout

5
@MilesRout: git add -ustanie się jak git commit -a; będziesz musiał wyraźnie powiedzieć, git add -u .czy to masz na myśli.
CB Bailey,

To jest absolutnie to samo, ponieważ Git v 2.0 git add .zachowuje się w inny sposób.
Nick Volynkin

13

git commit -aautomatycznie wywołuje git addwszystkie znane mu pliki. Możesz użyć, git addaby wybrać pliki do zatwierdzenia. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją: tutaj


11
wszystkie pliki, o których wie, są dla mnie bardzo niejasne, zwłaszcza, że ​​podobno NIE zostały dodane
Nikana Reklawyks

1
@alternative, Ta odpowiedź może być lepsza, jeśli dodasz wyjaśnienie dotyczące „wszystkich plików, o których wie” .....
Pacerier,

2
@Pacerier odpowiednikgit add -u
alternatywa

2
@ Z.Khullah, więc „wszystko (...)” oznacza „śledzone pliki”?
TheFrost

1
@TheFrost dokładnie!
Z. Khullah,

1

Używając przełącznika git commit -a z poleceniem commit, aby automatycznie „dodawać” zmiany ze wszystkich znanych plików (tj. Wszystkich plików, które są już wymienione w indeksie)

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.