دمج الفروع في Git قد يكون أحيانًا مهمة مرهقة، ولكن أمر الـ git merge
يبسط العملية بشكل كبير. في هذا البرنامج التعليمي، ستتعلم أساسيات دمج الفروع باستخدام git merge
، مقترنًا بـ GitHub، أداة إدارة المشاريع الرائدة.
لنبدأ هذه الرحلة إلى عالم Git وGitHub، مركزين على أمر git merge
القوي.
المتطلبات الأساسية لإتقان دمج Git
قبل الانغماس في تفاصيل git merge
، تأكد من توفر الإعدادات التالية:
- Git (الإصدار 2.25.1 المستخدم في هذا البرنامج التعليمي) – قم بتنزيله من موقع Git الرسمي.
- A GitHub account – Sign up at GitHub.
- جهاز Ubuntu (تم استخدام Ubuntu 20.04 هنا، ولكن أي نظام تشغيل يحتوي على Git سيكون كافيًا).
تهيئة مشروع لدمج Git
لاستخدام git merge
بشكل فعال، تحتاج أولاً إلى مشروع Git. دعونا نقوم بإعداد مشروع تجريبي للممارسة.
1. ابدأ بإنشاء دليل جديد باسم ~/git-demo وانتقل إليه:
2. قم بإنشاء ملف index.html في الدليل ~/git-demo بالمحتوى التالي. يعرض هذا الملف الـ HTML الأساسي رسالة حول البدء مع git merge
.
3. قم بتهيئة مستودع Git جديد في دليل المشروع الخاص بك:
تُستخدم أمر
git init
لتحويل مشروع قائم غير مُتخذ إلى مستودع Git أو لبدء مشروع جديد باستخدام Git.

4. قم بتأكيد إنشاء مجلد .git في دليل مشروعك. يتم من خلال هذا المجلد تتبع Git للتغييرات:

5. قم بتنفيذ أمر git add
لمرحلة تغييراتك في المشروع. عن طريق مرحلة ملف index.html، أنت تستعد للتأكيد التالي في سير العمل باستخدام Git.
6. استخدم git status
للتحقق من أن ملفك مرحل بشكل صحيح. يقدم هذا الأمر لقطة للحالة الحالية لدليل العمل الخاص بك.

7. فيما بعد، قم بتأكيد تغييراتك باستخدام git commit
. يحفظ هذا الأمر تغييراتك المرحلة إلى المستودع المحلي، مما يشكل خطوة هامة في تاريخ الإصدارات الخاص بك.

قم بتعيين هويتك في Git باستخدام:
git config --global user.email "[email protected]"
وgit config --global user.name "Your Name"
إذا كنت تستخدم Git للمرة الأولى.
8. قم بمراجعة تاريخ التأكيدات الخاص بك باستخدام git log
. يساعدك هذا الأمر في تتبع التغييرات وهو أمر حيوي عند التحضير لعملية git merge
.

9. قم بتأكيد وجود الفروع في مستودعك باستخدام git branch
. هذه الخطوة مهمة قبل أداء عملية git merge
.
ملاحظة: يُطلق على الفرع الافتراضي اسم ‘main’ في إصدارات Git الحديثة، محل ‘master’.

إنشاء فرع لعملية دمج Git
بعد إكمال إعداد Git الأولي وإجراء أول commit، حان الوقت لإنشاء فرع جديد. سيتم استخدام هذا الفرع لتوضيح عملية git merge
بشكل فعّال.
1. قم بتحديث ملف index.html بمحتوى جديد لتوضيح التغييرات في فرعك. تتضمن هذه النسخة حقول إدخال المستخدم، استعدادًا لعرض git merge
.
2. تحقق من حالة مستودعك باستخدام git status
لعرض التغييرات في index.html. يجب أن يشير إلى أن الملف معدل وغير مُسرح، جاهز للخطوات التالية في عملية git merge
.

3. قم بإنشاء فرع جديد باسم “form” باستخدام git checkout -b form
. هذا الأمر لا يقوم بإنشاء الفرع الجديد فحسب، بل يقوم أيضًا بتحويل فرع العمل الخاص بك إلى “form”، وهو أمر أساسي لتنفيذ git merge
.

4. قم بتأكيد إنشاء الفرع الجديد عن طريق تشغيل git branch
. يجب أن ترى الآن كل من الفروع “form” و “master”، مع “form” كفرع نشط يُشار إليه برمز النجمة (*)

5. قم بمرحلة وتأكيد التغييرات على فرع form. يضمن هذا الإجراء أن يعكس فرع form التحديثات الأخيرة التي تم إجراؤها على ملف index.html، مما يُعد الخطوة الأولى لعملية git merge
فعّالة.

دمج الفروع المحلية مع Git Merge
الآن بعد أن لديك فروع متميزة في مستودع GitHub الخاص بك، الخطوة التالية هي دمجها. تركز هذه القسم على دمج الفروع محليًا باستخدام أمر git merge
، وهو عملية أساسية في Git.
1. لبدء عملية الدمج، انتقل إلى فرع master
الذي سيتلقى التحديثات من فرع form
:
2. بمجرد التحول إلى فرع master
، قم بتنفيذ git merge form
لدمج التغييرات من فرع form
في master
. هذه خطوة مهمة في عملية git merge
.

git merge
.3. قم بتأكيد الدمج عن طريق التأكد من أنك على فرع master
والتحقق من أن محتوى index.html قد تم تحديثه.

git merge
.تبسيط العمليات مع Git Squash
التبسيط في Git هو تقنية تُستخدم لتنظيف تاريخ الاقتراحات. عندما تكون لديك رسائل اقتراح متعددة لا تحتاج إلى كل منها بشكل فردي، يسمح لك التبسيط بدمج هذه الرسائل في اقتراح واحد شامل. هذه الممارسة مفيدة بشكل خاص عند التحضير لعملية git merge
.
دعنا نستكشف عملية التبسيط من خلال إجراء مزيد من التغييرات على ملف index.html في فرع form
، ثم دمج هذه التغييرات.
1. قم بالتبديل إلى فرع form
لإجراء تعديلات إضافية:
2. قم بتعديل index.html عن طريق إضافة رأس نموذج. سيؤدي هذا الخطوة إلى إنشاء تغيير سنقوم بضغطه لاحقًا أثناء الدمج:
3. قم بمرحلة وتأكيد التغييرات برسالة واضحة تصف التحديث:

git merge
.
4. قم بتعزيز index.html في فرع form
عن طريق إضافة حقل إدخال جديد. هذا التعديل جزء من التحضير لعملية git merge
الفعالة.
5. قم بمرحلة وتأكيد هذه التغييرات برسالة مميزة، مضمنًا كل خطوة في عملك بوضوح لعملية git merge
القادمة:

git merge
.
6. فيما بعد، قم بإدراج عنصر فقري تحت النموذج في index.html، معدّلا الملف بشكل إضافي استعدادًا لعملية git merge
.
7. قم بمرحلة وتأكيد التغييرات مرة أخرى، باستخدام رسالة تلخص جوهر هذا التحديث، حيوية لعملية git merge
:

git merge
.
8. استخدم git rebase
في وضع تفاعلي لعرض وتحرير الالتزامات الأخيرة. هذه الخطوة ضرورية في عملية ضغط الالتزامات لجعل عملية git merge
نظيفة ومنظمة.
9. في وضع التفاعلي، اختر reword
للالتزام الأول و squash
للالتزامات التالية. يؤدي هذا الإجراء إلى ت consأل الالتزامات التاريخية، مما يجعل عملية git merge
أكثر نظافة وتنظيمًا.

git merge
.
10. بعد إعادة الصياغة والحفظ، قم بتحديث رسالة الالتزام الموحدة لتعكس التغييرات التراكمية. تؤدي هذه الخطوة إلى إكمال عملية الضغط، مما يعدك لعملية git merge
ميسرة.

git merge
.تأكيد نجاح عملية الضغط الخاصة بك، والتي تعتبر جزءًا أساسيًا من عملية الدمج في git merge
عند التعامل مع رسائل الالتزام المتعددة.

git squash
operation.للضغط والدمج المتزامن، استخدم git merge --squash
. تقوم هذه التقنية بدمج وضغط فرع form في فرع master، مما يجمع بشكل فعال بين الالتزامات.
تنفيذ أمر git merge --squash
يجمع بين التغييرات من فرع form
في master
مع ضغط جميع الالتزامات في واحدة. تعتبر هذه الطريقة جزءًا من استراتيجيات git merge
الفعالة.

git merge
with squash option.تنفيذ Fast-Forward في دمج Git
للحصول على تاريخ الالتزام الميسر، فإن التقدم السريع هو طريقة مثالية، خاصة للتحديثات الصغيرة أو إصلاحات الأخطاء. يتيح لك ذلك دمج الفروع دون إضافة المزيد من الالتزامات، مما يحافظ على تاريخ نظيف وخطي، الأمر الحاسم في عمليات git merge
الفعّالة.
يحدث التقدم السريع عندما لا تكون هناك انحرافات في فرع القاعدة، وعادة ما يكون هذا الفرع هو master
، مما يمكن من دمج تاريخين وتحديثات المؤشر بسلاسة.
1. قم بالتبديل إلى فرع form
لبدء عملية التقدم السريع:
2. أنشئ وحدّث ملف JavaScript، مثل index.js، في فرع form
، وقم بتجميع والتزام التغييرات:
3. وأخيرًا، قم بدمج فرع form
في master
باستخدام نهج التقدم السريع. يقوم هذا الخطوة بمحاذاة فرع master مع أحدث التغييرات من فرع form، مما يخلق مسارًا git merge
سلسًا وخطيًا.

الختام
هذا البرنامج التعليمي قد قادك خلال مختلف التقنيات لدمج الفروع باستخدام git merge
. من سحق التعهيدات إلى التقدم السريع، تعزز هذه الطرق قدرتك على إدارة المشاريع بشكل تعاوني في Git.
الآن ومع مجموعة من هذه المهارات، افكر في المساهمة في مشاريع على GitHub، وتطبيق معرفتك في git merge
في سيناريوهات العمل الحقيقية.