git add. vs git commit -a

Jawaban:

139

git commit -aartinya hampir [*] sama dengan git add -u && git commit.

Ini tidak sama karena git add .ini akan menambahkan file yang tidak terlacak yang tidak diabaikan, git add -uhanya perubahan tahapan (termasuk penghapusan) ke file yang sudah dilacak.

[*] Ada perbedaan kecil jika Anda tidak berada di direktori root repositori Anda. git add -utahapan memperbarui file di direktori saat ini dan di bawahnya, itu sama dengan git add -u .sedangkan git commit -atahapan dan melakukan perubahan ke semua file yang dilacak.

CB Bailey
sumber
3
Perilaku di [*] akan berubah di git 2.0, untuk konsistensi.
pengguna1284631
2
Ke arah mana yaitu akan komit -a menjadi seperti tambah -u, atau akankah tambah -u menjadi seperti komit -a?
Miles Rout
5
@MilesRout: git add -uakan menjadi seperti git commit -a; Anda perlu mengatakan secara eksplisit git add -u .apakah itu yang Anda maksud.
CB Bailey
Ini benar-benar sama sejak Git v 2.0 di mana git add .berperilaku dengan cara yang berbeda.
Nick Volynkin
13

git commit -asecara otomatis memanggil git addsemua file yang diketahuinya. Anda dapat menggunakan git adduntuk memilih file apa yang akan digunakan. Konsultasikan dokumen untuk info lebih lanjut: di sini

alternatif
sumber
11
semua file yang diketahuinya sangat tidak jelas bagi saya, terutama karena itu seharusnya TIDAK ditambahkan
Nikana Reklawyks
1
@alternative, Tetap saja jawaban ini dapat bekerja lebih baik jika Anda menambahkan klarifikasi untuk "semua file yang diketahuinya" .....
Pacerier
2
@Pacerier setara dengangit add -u
alternatif
2
@ Z.Khullah, jadi "semua (...)" berarti "file terlacak"?
TheFrost
1
@TheFrost tepatnya!
Z. Khullah
1

Dengan menggunakan git commit -a switch dengan perintah komit untuk secara otomatis "menambahkan" perubahan dari semua file yang dikenal (yaitu semua file yang sudah terdaftar di indeks)

Dilip
sumber