Saya bekerja pada proyek berbasis WordPress dan saya ingin menambal proyek saya di setiap versi rilis baru WP. Untuk ini, saya ingin membuat tambalan antara dua komit atau tag.
Misalnya, dalam repo saya, /www/WP
saya melakukan ini:
$git patch-format com1..com2 --stdout > ~/patchs/mypatch.patch
Atau
$git patch-format tag1..tag2 --stdout > ~/patchs/mypatch.patch
/www/WP
git natif WordPress
/www/myproject
Proyek git saya berbasis WordPress
Baris git apply
perintah tidak berfungsi, saya pikir karena kita berada di repositori yang berbeda.
Bisakah saya membuat file tambalan tanpa komit, hanya diferensial dan menerapkannya ke repositori git lain?
Terima kasih sebelumnya.
$git diff -u tag1..tag2 > mypatch.patch
dan$git apply --stat > mypatch.patch
jawabannya adalah0 files changed
saran lain tolong? :)git apply
. Saya memperbarui jawaban saya dengan sebuah contoh.git diff -p tag1 tag2 > my.patch
yang bekerja dengan baik.Only unified diff (-uNr) format is acceptable.
tetapi ketika saya mencobagit diff -uNr tag1..tag2 > mypatch.patch
saya mendapatkan pesanusage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]
git diff ...
+git apply ...
jangan menangani file yang dihapus / dipindahkan dengan benar ... saatgit format-patch ...
+git am ...
lakukan.Untuk menghasilkan tambalan untuk beberapa commit, Anda harus menggunakan
format-patch
perintah git, misIni akan mengekspor komit Anda ke file tambalan dalam format kotak surat.
Untuk menghasilkan tambalan untuk komit terakhir, jalankan:
Kemudian dalam repositori lain terapkan perintah patch by
am
git, misLihat:
man git-format-patch
dangit-am
.sumber
patch -p1
? sourceware.org/glibc/wiki/…Sebagai pelengkap, untuk menghasilkan tambalan hanya untuk satu komit tertentu, gunakan:
Saat file tambalan dibuat, pastikan repo Anda yang lain tahu di mana itu saat Anda menggunakannya
git am ${patch-name}
Sebelum menambahkan tambalan, gunakan
git apply --check ${patch-name}
untuk memastikan tidak ada konflik.sumber