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.