Saya punya 2 git repositori lokal, keduanya menunjuk ke repositori jarak jauh yang sama.
Dalam satu repositori git, jika saya melakukannya git format-patch 1
, bagaimana saya bisa menerapkan tambalan itu ke repositori lain?
Catatan: Anda dapat terlebih dahulu melihat pratinjau yang akan dilakukan tambalan Anda:
Pertama-tama statistik:
git apply --stat a_file.patch
Kemudian jalankan kering untuk mendeteksi kesalahan:
git apply --check a_file.patch
Terakhir, Anda bisa menggunakan git am
untuk menerapkan tambalan sebagai komit: memungkinkan Anda untuk menambal tambalan yang diterapkan.
Ini bisa bermanfaat untuk referensi nanti.
git am --signoff < a_file.patch
Lihat contoh di artikel ini :
Di git log Anda, Anda akan menemukan bahwa pesan komit berisi tag "Signed-off-by". Tag ini akan dibaca oleh Github dan yang lainnya untuk memberikan info berguna tentang bagaimana komit berakhir di kode.
git am < somepatch.patch
menghasilkan "fatal: nama identitas kosong (untuk <>) tidak diizinkan". Adakah yang bisa menjelaskan kepada saya mengapa?Author
tajuk buruk di tambalan, dan / atau Anda tidakgit config user.{name,email}
.git apply --check
mengatakanpatch does not apply
, dangit apply -3
mengatakanrepository lacks the necessary blob to fall back on 3-way merge.
In git, rebitting commit sangat mudah; tetapi bagaimana orang rebase patch mereka di atas kode yang diperbarui?sumber
Atau, jika Anda menendang sekolah lama:
sumber
Pertama, Anda harus mencatat tentang perbedaan antara
git am
dangit apply
Ketika Anda menggunakan
git am
Anda biasanya ingin menerapkan banyak tambalan. Jadi harus menggunakan:atau hanya:
Git akan menemukan tambalan secara otomatis dan menerapkannya dalam urutan ;-)
UPD
Di sini Anda dapat menemukan cara membuat tambalan tersebut
sumber
git apply
.. dan di--reverse
:-) 👍Jika Anda ingin menerapkannya sebagai komit , gunakan git .
sumber
Jika Anda menggunakan JetBrains IDE (seperti IntelliJ IDEA, Android Studio, PyCharm), Anda dapat menyeret file patch dan meletakkannya di dalam IDE, dan sebuah dialog akan muncul, menampilkan konten patch. Yang harus Anda lakukan sekarang adalah mengklik "Terapkan tambalan", dan sebuah komit akan dibuat.
sumber
Anda dapat menggunakan cmd yang disebutkan di bawah
sumber