Keduanya git am
dan git apply
dapat digunakan untuk menerapkan tambalan. Saya gagal melihat perbedaannya. Saya melihat perbedaan sekarang: git am
secara otomatis melakukan sementara git apply
hanya menyentuh file tetapi tidak membuat komit. Apakah itu satu-satunya perbedaan?
134
am
dapat dianggap sebagai singkatan dariApply Mail
...Jawaban:
Baik input dan output berbeda:
git apply
mengambil tambalan (misalnya output darigit diff
) dan menerapkannya ke direktori kerja (atau indeks, jika--index
atau--cached
digunakan).git am
mengambil kotak surat komit yang diformat sebagai pesan email (mis. outputgit format-patch
) dan menerapkannya ke cabang saat ini.git am
menggunakan digit apply
belakang layar , tetapi bekerja lebih banyak sebelum (membacaMaildir
ataumbox
, dan parsing pesan email) dan setelahnya (membuat komit).sumber
git apply
sepertinya juga menerimagit format-patch
output.git apply
akan bekerja untuk outputgit format-patch
juga tetapi perubahan tidak akan bertahap dan perlu dilakukan (sehingga menciptakan titik komit yang berbeda dalam indeks mereka diterapkan). Dengangit am
Anda akan membawa informasi komit (bersama dengan penulis, dll.) Ke dalam indeks itu diterapkan.git apply
kemudian untuk menambal repo Anda (buruk),git am
dapat mengambil perubahan fitur yang sah dan memasukkannya ke dalam repo Anda (pendekatan yang disukai).git apply
adalah untuk menerapkan perbedaan langsung (misalnya darigit diff
) sedangkangit am
untuk menerapkan tambalan dan urutan tambalan dari email, baik format mbox atau Maildir dan merupakan "kebalikan" darigit format-patch
.git am
mencoba mengekstrak pesan komit dan detail pembuat dari pesan email yang karenanya dapat membuat komitmen.sumber
Dengan
git am
Anda menerapkan tambalan jadi jika Anda menggunakangit status
Anda tidak akan melihat perubahan lokal.git apply
memungkinkan Anda untuk membuat perubahan pada file sumber seolah-olah Anda sedang menulis kode sendiri, akibatnyagit status
dangit diff
akan menampilkan perubahan yang dibuat dalam tambalan yang telah Anda terapkan, maka Anda dapat memperbaiki / menambahkan lebih banyak perubahan dan mengirimkannya bersama sebagai satu tambalan baru .sumber