Saya hanya ingin mendapatkan daftar file yang diubah di antara dua revisi, yang sederhana:
git diff -–name-only commit1 commit2 > /path/to/my/file
Tapi, apa yang harus saya tulis, jika saya ingin menyalin semua file yang terdaftar ke tempat lain? Dan saya perlu struktur direktori yang sama sekali identik untuk file yang disalin.
Misalnya, saya telah memodifikasi dan menambahkan file:
/protected/texts/file1.txt
/protected/scripts/index.php
/public/pics/pic1.png
Saya ingin memiliki /home/changes/semua file yang diubah dan ditambahkan:
/home/changes/protected/texts/file1.txt
/home/changes/protected/scripts/index.php
/home/changes/public/pics/pic1.png
git format-patchdapat melakukan ini untuk rentang komit.
git diff commit1 commit2 > my.patchdan kemudian cd other/path; patch -p1 < my.patch. Mengapa harus dilakukan dengan salinan lengkap file? Jika itu karena Anda berpikir tambalan itu mungkin tidak berlaku, dan karena itu direktori lain tidak benar-benar dalam commit1keadaan, Anda benar-benar harus menyalin segala sesuatu dari commit2negara ...