التصنيفات
GIT productivity and teamwork

أنشاء الفروع في الـ GIT ودمجها

تتمثل إحدى أقوى ميزات Git في القدرة على إنشاء الفروع ( branches ) ودمجها بسهولة. تشجع طبيعة Git الموزعة المستخدمين على إنشاء فروع جديدة في كثير من الأحيان ودمجها بانتظام كجزء من عملية التطوير. هذا يحسن بشكل أساسي سير عمل التطوير لمعظم المشاريع من خلال تغييرات اصغر حجماً واكثر تأثيراً

في أنظمة التحكم في الإصدارات القديمة (مثل CVS) ، بسبب صعوبة العملية أقتصرت عمليات الدمج على المستخدمين الخبراء.
حتى في أنظمة التحكم في الحديثة نسبياُ مقل Subversion ، يجب رفع ال ( commits ) إلى مستودع مركزي ،
لذلك فإن الفروع والدمج يعتبر مميز وسهل في الـ GIT.

العمل المتفرّع ( branching workflow ) هو امر شائع الاستخدام في Git وهو عبارة عن إنشاء فرع جديد لكل ميزة جديدة أو لإصلاح خلل أو التحسين.
كل فرع يتم رفع كل التعديلات والاكواد الجديدة الخاصة بميزة معينة او اصلاح معين وبمجرد اكتمال الميزة الجديدة تكون جاهزة للدمج مرة أخرى في الفرع الرئيسي ( master branch ) .
كما يمكن رفع كل فرع على حدة لمستودع البرمجيات .

يتم استخدام الأمر git branch لإستعراض جميع الفروع الموجودة . ستظهر علامة النجمة بجوار الفرع النشط حاليًا.

لإنشاء فرع جديد ، يمكننا استخدام الامر التالي  git branch new-branch. سيؤدي هذا إلى إنشاء فرع جديد وينسخ كل شي موجود على الفرع النشط حاليًا.

في هذه المرحلة ، أنشأنا فرعًا جديدًا ، ولكننا لا نزال موجودين في الفرع الرئيسي ( master branch ) .
لبدء العمل في الفرع الجديد ، نحتاج أولاً إلى تشغيل الأمر
git checkout new-branch. سيؤدي ذلك إلى تغيير الفرع النشط إلى الفرع الجديد.

في هذه المرحلة ، سيتم إضافة الايداعات ( commits ) للفرع الجديد . بمجرد اكتمال التعديلات و الانتهاء من العمل المطلوب ، يمكن دمج الايداعات ( commits ) للفرع الرمز الرئيسي ( master ).

أولاً نتحول للفرع الرئيسي ( master ) من خلال تنفيذ الامر التالي git checkout master. ثم نقوم بتشغيل الأمر
git merge new-branch لدمج الميزة الجديدة في الفرع الرئيسي. لاحظ أن git merge تدمج الفرع المحدد في الفرع النشط حاليًا. لذلك نحن بحاجة إلى أن نكون على الفرع الذي ندمج فيه.

إذا سارت الامور بشكل جيد نكون قد انهينا العمل. تظهر التغييرات والايداعات ( commits ) التي قمنا بها في الفرع new_branch في الفرع master . ومع ذلك ، من المحتمل ألا يتمكن Git من إكمال الدمج بسبب تغيير التعارض في فرع المصدر. هذا يسمى تعارض دمج و ربما سأفرد له مقاله منفصله .

للتلخيص ، فيما يلي الأوامر لإنشاء فرع جديد ، وإجراء بعض الايداعات ( commits ) ، وإعادة دمجها في الفرع الرئيسي: