Pertanyaan Apa perbedaan antara git am dan git?


Kedua 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?


96
2017-09-02 22:10


asal


Jawaban:


Input dan output keduanya berbeda:

  • git apply mengambil patch (misalnya output dari git diff) dan menerapkannya ke direktori kerja (atau indeks, jika --index atau --cached digunakan).
  • git am menggunakan kotak surat komit yang diformat sebagai pesan email (misalnya keluaran dari git format-patch) dan menerapkannya ke cabang saat ini.

git am menggunakan git apply dibalik layar, tetapi melakukan lebih banyak pekerjaan sebelumnya (membaca a Maildir atau mbox, dan parsing pesan email) dan setelah (membuat commit).


87
2017-09-02 22:23



git apply adalah untuk menerapkan diff lurus (misalnya dari git diff) sedangkan git am adalah untuk menerapkan tambalan dan urutan tambalan dari email, baik mbox atau format Maildir dan merupakan "kebalikan" dari git format-patch. git am mencoba untuk mengekstrak pesan komit dan detail penulis dari pesan email yang karenanya dapat melakukan commit.


13
2017-09-02 22:21



Dengan git am Anda menerapkan tambalan jadi jika Anda menggunakan git status Anda tidak akan melihat perubahan lokal apa pun.

git apply memungkinkan Anda untuk membuat perubahan dalam file sumber seperti jika Anda menulis kode sendiri, sebagai konsekuensinya git status dan git diff akan menampilkan perubahan yang dibuat di patch yang telah Anda terapkan, kemudian Anda dapat memperbaiki / menambahkan lebih banyak perubahan dan mengirimkannya bersama sebagai satu patch baru.


8
2017-09-02 22:20