تحدثت في المقاله السابقه عن Git Bundle’s وعن طريقة نقل مستودع بالكامل ولكن في بعض الاحيان كل التعديلات الجديده مقتصره على فرع واحد وغير معقده.
ولهذا يقدم لنا Git الامر format-patch
والذي يقوم بإنشاء ملف او عدة ملفات (لكل commit ملف منفصل) تحتوي على سجل للتعديلات والتي يمكن اعتمادها على نسخه اخرى من المشروع حتى لو لم تُستخدم Git لادارة النسخ فيه.
الامر السابق يوفر لنا طريقتين للتعامل معه
- إنشاء ملف لكل commit
- إنشاء ملف واحد يجمع كل ال commits
سأقوم بتنفيذ الامر التالي لانشاء patch
git format-patch 340c9e89..master
والذي سيقوم بدوره بإنشاء ملف لكل commit كالتالي
0001-update-ar-translation.patch
0002-update-README.patch
0003-upgrade-libraries.patch
0004-fix-invalid-date.patch
0005-add-auto-email-reminder.patch
او بتنفيذ الامر التالي
git format-patch 340c9e89..master --stdout > last-5-commits.patch
والذي سيقوم بإنشاء ملف بأسم last-5-commits.patch
ويحتوي على كل ال commits السابقه في ملف واحد
ويمكن اعتماد الpatches بأحدى الطريقتين
git apply last-5-commits.patch
git am last-5-commits.patch
سيقوم الامر الاول باعتماد التعديلات في المشروع الحالي ولكن يجب ايداع التغييرات الجديده (لايشترط ان يكون المشروع الحالي يعمل على Git).
اما الامر الثاني فسيقوم باعتماد التعديلات في المشروع الحالي مع ايداع التغييرات وسيكون جاهز للدفع الى الخادم.