Git Patches

تحدثت في المقاله السابقه عن Git Bundle’s وعن طريقة نقل مستودع بالكامل ولكن في بعض الاحيان كل التعديلات الجديده مقتصره على فرع واحد وغير معقده.

ولهذا يقدم لنا Git الامر format-patch والذي يقوم بإنشاء ملف او عدة ملفات (لكل commit ملف منفصل) تحتوي على سجل للتعديلات والتي يمكن اعتمادها على نسخه اخرى من المشروع حتى لو لم تُستخدم Git لادارة النسخ فيه.

الامر السابق يوفر لنا طريقتين للتعامل معه

  1. إنشاء ملف لكل commit
  2. إنشاء ملف واحد يجمع كل ال 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 بأحدى الطريقتين

  1. git apply last-5-commits.patch
  2. git am last-5-commits.patch

سيقوم الامر الاول باعتماد التعديلات في المشروع الحالي ولكن يجب ايداع التغييرات الجديده (لايشترط ان يكون المشروع الحالي يعمل على Git).

اما الامر الثاني فسيقوم باعتماد التعديلات في المشروع الحالي مع ايداع التغييرات وسيكون جاهز للدفع الى الخادم.

One thought on “Git Patches”

Comments are closed.