Rumah > Soal Jawab > teks badan
Sila beritahu saya perbezaan antara git commit -m dan git commit -am
迷茫2017-05-02 09:38:32
Apabila pengubahsuaian telah ditambahkan pada git add <change file>
melalui stage
, mesej git commit -m "<message>"
boleh ditambah melalui stage
untuk semua perubahan yang telah dimasukkan ke dalam commit
. Apa yang ada dalam stage
? Lihat di bawah
Jika fail anda telah diserahkan sebelum ini, tetapi kali ini perubahan belum dibuat stage
, seperti berikut:
Anda boleh menggunakan git commit -am "<message>"
terus untuk menambah semua pengubahsuaian tetapi bukan stage
perubahan pada stage
dan merekodkan maklumat commit
. (Pada tahap tertentu, ia bersamaan dengan gabungan git add
dan git commit -m
, dengan syarat fail yang diubah suai sudah tracked
)
给我你的怀抱2017-05-02 09:38:32
git commit -am "str"
#等同于
git commit -a -m "str"
Jom jalankan
man git commit
untuk mendapatkan maksud parameter a
dan anda akan tahu perbezaannya.
PILIHAN
-a, --semua
Beritahu arahan untuk secara automatik mementaskan fail yang telah diubah suai dan >dipadamkan, tetapi fail baharu yang anda tidak beritahu Git tidak terjejas.
bermaksud
Secara automatik meletakkan semua fail yang diubah suai dan dipadamkan pada timbunan, tetapi fail yang belum anda tambahkan tidak akan terjejas.
Biasanya apabila kita menyerahkan git adalah
git add .
git commit -m "some str"
git push
Ini adalah tiga langkah besar, tetapi sebenarnya, anda hanya memerlukan dua arahan, melainkan terdapat fail baharu untuk ditambahkan.
git commit -am "some str"
git push
伊谢尔伦2017-05-02 09:38:32
Diterangkan secara literal, git commit -m digunakan untuk menyerahkan fail dalam kawasan pementasan git commit -am digunakan untuk menyerahkan fail yang dijejaki
Untuk memahami perbezaannya, anda mesti terlebih dahulu memahami kitaran perubahan status fail git, seperti yang ditunjukkan dalam rajah di bawah
Semua fail di bawah direktori kerja berada dalam dua keadaan ini: dijejaki atau tidak dijejaki. Fail yang dijejaki merujuk kepada fail yang telah disertakan dalam pengurusan kawalan versi Mereka direkodkan dalam petikan terakhir Selepas bekerja untuk tempoh masa, statusnya mungkin tidak dikemas kini, diubah suai atau diletakkan di kawasan pementasan.
Berikut ialah contohApabila fail seperti 'a.txt' ditambahkan pada folder projek, fail tersebut berada dalam keadaan tidak dijejaki. Fail dalam status tidak dijejaki tidak boleh diserahkan
Pada masa ini, jika anda menggunakan git commit -m 'add a.txt', anda boleh menyerahkannya dengan lancar
Tetapi, apakah perbezaan antara git commit -m dan git commit -am? Ia bergantung pada pemprosesan selepas mengubah suai fail a.txt
Seterusnya, tambah kandungan 'a' pada a.txt
Fail a.txt dijejaki tetapi tidak berperingkat. Pada masa ini, jika anda menggunakan git commit -m, anda tidak boleh menyerahkan versi terbaharu a.txt Apa yang diserahkan hanyalah versi lama a.txt dengan kandungan kosong pada permulaan
Untuk menyerahkan versi baharu a.txt, iaitu a.txt dengan kandungan 'a', anda perlu menggunakan git add a.txt untuk meletakkan versi baharu a.txt ke dalam kawasan storan sementara berperingkat , dan kemudian gunakan git commit -m untuk commit
Jika anda menggunakan git commit -am, anda boleh meninggalkan langkah git add a.txt, kerana git commit -am boleh menyerahkan fail yang dijejaki, dan a.txt telah pun dijejaki dari awal
Untuk meringkaskan, kunci kepada perbezaan antara menggunakan kedua-dua arahan ini ialah arahan git add
Arahan git add ialah perintah berbilang fungsi Bergantung pada status fail sasaran, kesan arahan ini juga berbeza: anda boleh menggunakannya untuk mula menjejaki fail baharu atau meletakkan fail yang dijejaki ke dalam storan sementara. kawasan, dan ia juga boleh digunakan untuk menggabungkan Tandakan fail bercanggah sebagai diselesaikan, dsb.
Kita perlu menggunakan arahan git add untuk menjejak fail baharu, tetapi jika anda menggunakan git commit -am, anda boleh meninggalkan fungsi menggunakan arahan git add untuk meletakkan fail yang dijejaki ke dalam kawasan pementasan