إذا كنت تستخدم جيت لإدارة رموز المصدر، قد تحتاج إلى دمج فروع التطوير المختلفة لمشروع في فرع واحد. سيوجهك هذا المقال حول كيفية دمج فرعين تطويريين باستخدام أمر الدمج في جيت.
سنريك كيفية إنشاء مشروع جيت، إنشاء فروع مختلفة، ودمج فرع في فرع آخر. بالإضافة إلى ذلك، ستتعلم ما هو الدمج السريع والدمج بثلاثة طرق، وكيفية دمج فرع في مستودع بعيد.
ما هو دمج جيت؟
جيت هي أداة DevOps شهيرة يمكن للمطورين استخدامها لتتبع وإدارة التغييرات على الرموز التي تم كتابتها من قبل فرق مختلفة. باستخدام أمر دمج جيت، يمكنك أخذ فرع التطوير الحالي (الذي قمت بشقه من الفرع الرئيسي) ودمج تغييرات رموزه مرة أخرى في الفرع الرئيسي.
دمج جيت هو أمر ستستخدمه بشكل متكرر عند العمل ضمن فريق. قد تكون هناك أوقات عندما يتعاون أنت ومطور آخر على ميزة واحدة على فرعين منفصلين. ومع ذلك، عندما يأتي الوقت، ستحتاج إلى دمج عملك في فرع واحد، اختبار تلك التغييرات، ثم دمج عملك التطويري التعاوني في الفرع التطويري الرئيسي.
كما يتم تحديث الفرع الرئيسي للتطوير، فإن الفرع المميز الذي تعمل أنت وغيرك من المطورين عليه لن يتم تحديثه مع تغييرات فرقك. لذلك، كممارسة جيدة، عندما يحين وقت رفع طلب سحب، يجب عليك دائمًا البدء بتحديث النسخة المحلية من الفرع الرئيسي بأحدث التغييرات. ثم، يمكنك دمج الفرع الرئيسي المحدث في فرع التطوير الخاص بك قبل التأكيد ورفع طلب سحب لدمجه في الفرع الرئيسي للتطوير.
كيفية دمج فرعي Git مع دمج Git
كمطور، فإن أن تكون ماهرًا في Git يمكن حقًا أن يساعدك في زيادة إنتاجيتك. في البداية، من الأساسي فهم كيفية تنفيذ أوامر Git من سطر الأوامر. قبل أن نبدأ، دعنا نرى ما يتعين عليك إعداده أولاً قبل أن تبدأ في دمج فروع Git المختلفة.
المتطلبات المسبقة
للبدء، ستحتاج إلى العناصر التالية:
- A Windows, Mac, or Linux machine to run Git.
- تطبيق Git، والذي يتوفر للتنزيل هنا.
- A GitHub or Gitlab account.
- برنامج تحرير الكود مثل Visual Studio Code.
لنقوم بسرعة بمراجعة الخطوات المختلفة المطلوبة لتثبيت Git على جهاز كمبيوتر بنظام Windows (لدينا أيضًا دليل منفصل حول كيفية تثبيت Git على أوبونتو):
- اتبع الرابط لتنزيل Git لجهازك وتثبيت الملفات.
- بمجرد التثبيت، افتح الطرفية الخاصة بك واكتب git –version:
git –version
إذا حصلت على رقم الإصدار المطلوب، فهذا رائع! ومع ذلك، إذا حصلت على رسالة “الأمر غير موجود”، فيجب أن تقوم بإضافة Git إلى متغير الـ $PATH الخاص بك. هذه عادة ما تكون مشكلة في نظام Windows.
لنقم بتصحيح ذلك بسرعة حتى لا تضطر إلى البحث.
- انتقل إلى شريط البدء وانقر بزر الماوس الأيمن على This PC.
- حدد الخصائص.
- انقر فوق إعدادات النظام المتقدمة.
- في خصائص النظام، انقر على متغيرات البيئة. هنا يمكنك إضافة قيم إلى متغير الـ $PATH.
- حدد $PATH وانقر تحرير.
- انقر إنشاء وأضف مسارًا إلى git/cmd.
- انقر إنشاء وأضف المسار إلى ملف git.exe
احفظ التغييرات، عد إلى الطرفية، وقم بتشغيل أمر git -version مرة أخرى.
git -version
يجب أن تحصل الآن على رقم الإصدار الذي تم إرجاعه. بعد القيام بالعمل التحضيري وإعداد حساب GitHub أو Gitlab الخاص بك، يجب أن تكون الآن جاهزًا للاستخدام.
إنشاء مشروع Git
في هذا القسم، سأرشدك خلال الخطوات المختلفة المطلوبة لإنشاء مستودع جديد.
على حساب Github الذي أُنشئ حديثًا لديك، انقر فوق إنشاء على الجانب الأيسر من الشاشة.

بعد ذلك، ستحتاج إلى إعطاء مستودعك اسمًا وملء بعض التفاصيل الأخرى. قم بإعطائه وصفًا مختصرًا إذا كنت ترغب، اجعله عامًا، والممارسة الأفضل هي دائمًا إضافة ملف ReadMe. بمجرد الانتهاء، انقر فوق إنشاء المستودع.

الآن، للبدء في تحرير الشفرة في محرر الشيفرة الخاص بك، ستريد استنساخ مستودعك الجديد عن طريق النقر فوق زر استنساخ. حدد HTTPS، انسخ العنوان، وافتح الطرفية الخاصة بك.

في الطرفية الخاصة بك، استخدم الأمر cd لاختيار المكان الذي ترغب في إنشاء دليل جديد لمشروعك
cd user/desktop/repo/
عندما تكون في الفرع الصحيح، استخدم أمر mkdir لإنشاء دليل جديد:
mkdir <name of your directory>
الآن، دعنا نستخدم أمر cd مرة أخرى للانتقال إلى ذلك الدليل الذي تم إنشاؤه حديثًا:
cd <name of your newly created directory>
بمجرد وصولك إلى الدليل الجديد الخاص بك، استخدم أمر git init لإنشاء مستودع جديد:
git init
بعد ذلك، استخدم أمر git clone باستخدام عنوان HTTPS الصحيح، واضغط على Enter. وبشكل افتراضي، سيتم إنشاء فرع أساسي في مستودعك المحلي:
git clone <paste https address here>
الآن، افتح مستودعك المنسوخ حديثًا باستخدام برنامج Visual Studio Code. يمكنك الآن البدء في كتابة الشفرة:
بعد إنشاء مستودعك، ستكون بالفعل في الفرع الرئيسي. كممارسة جيدة، يجب ألا تقوم أبدًا بدفع الشفرة مباشرة إلى الفرع الرئيسي، الذي يجب حمايته.
من أجل هذا البرنامج التعليمي، لن نتطرق إلى الفروع المحميةGit. ولكن في الميدان، لن تكون قادرًا على دفع الكود إلى الفرع الرئيسي بدون طلب سحب.
إنشاء فرع آخر لGit
نحن حاليًا في الفرع الرئيسي، قمت بتعديل شيء ما لإنشاء بعض المحتوى، والآن تريد إنشاء فرع جديد.
في الطرفية الخاصة بك، استخدم أمر git checkout لإنشاء فرع جديد والتبديل تلقائيًا إليه:
git checkout -b <name of new branch>
ينبغي أن يقوم الأمر تلقائيًا بإنشاء هذا الفرع الجديد من الفرع الرئيسي الخاص بك، بحيث لا ينبغي تغيير رمز الفرع الأخير.
والآن، ها هو الجزء الممتع حيث سنتمكن من استخدام أمر اندماج git. في الفرع الذي قمت بإنشائه حديثًا، ستحتاج أولاً إلى إضافة المزيد من الرمز بحيث يكون الفرع الحالي لديك متقدمًا على الفرع الرئيسي ببعض التغييرات الجديدة.
الآن بما أنك ترغب في دمج هذا الفرع الجديد في الفرع الرئيسي، قد تواجه صدام الدمج، وهو إدراج رمزي يتعارض مع رمز موجود بالفعل. من الصعب حقًا التعامل مع هذه المشاكل.
ماذا تفعل؟ دعنا نرى كيفية دمج فرع واحد في الآخر.
دمج فرعي Git الخاصين بك في مستودعك المحلي
بينما تكون على الفرع الجديد الخاص بك، انتقل إلى الطرفية الخاصة بك واستخدم أمر git branch للتحقق من اسم الفرع الذي توجد عليه:
git branch
أنت الآن على الفرع الجديد الخاص بك، استخدم مرة أخرى أمر git checkout للتبديل إلى الفرع الرئيسي الخاص بك:
git checkout Main
بعد ذلك، استخدم أمر git pull لاستيراد أي تغييرات قد قام بها فريقك وتحديث فرعك الرئيسي المحلي:
git pull
الآن، استخدم git checkout مرة أخرى للتبديل إلى الفرع الجديد الذي ترغب في دمجه مع الفرع الرئيسي:
git checkout <your specified branch>
حان الوقت الآن لاستخدام أمر git merge. سيأخذ هذا الأمر النسخة الحالية من الفرع الرئيسي الخاص بك ثم يدمجها في فرع التطوير الخاص بك:
git merge Main
سيكون نتيجة الدمج تحتوي على أحدث نسخة من الشيفرة بالإضافة إلى الميزة التي قمت بتطويرها.
طرق أخرى لدمج فروع Git
بعد أن أظهرنا لك كيفية دمج فرع جديد مع فرعنا الرئيسي، دعنا نتحقق من الطرق الأخرى لدمج فروع Git التي قد تحتاج إلى استخدامها.
ما هو دمج الإعادة السريعة؟
A fast-forward merge is another way to merge multiple commits on one branch with one command rather than merging them all manually. Another advantage of using a fast-forward merge is that it will combine the histories of multiple commits while squashing the commit history.
لنفترض أن لدينا فرع ميزة متقدم عن الفرع الرئيسي بعدة عمليات. نريد دمج كل هذه العمليات دون الحاجة إلى دمجها يدويًا واحدة تلو الأخرى. في هذه الحالة، سنستخدم دمج الإطالة.
في مثالنا، سنبدأ بكتابة بعض الشفرة وإضافة عملية دمج جديدة إلى فرعنا باستخدام أوامر git add و git commit:
git add <filename>
git commit –m “added a thing”
الآن، سنقوم بإضافة عملية دمج أخرى إلى الفرع الجديد باستخدام نفس الأوامر مرة أخرى:
git add <filename>
git commit –m “added another thing”
بعد ذلك، نريد دفع هاتين العمليتين إلى مستودعنا البعيد دون الحاجة إلى عمليتي دفع. للقيام بذلك، نحتاج إلى استخدام -ff في أمر دمج git
git merge --ff
سيقوم ذلك بدمج كلتا العمليتين في نفس الوقت إلى عملية واحدة وجعل شفرتك تلحق بالفرع الرئيسي.
ما هو دمج ثلاثي الطرق؟
تخيل حالة حيث قام فريق التطوير بإنشاء بعض الميزات الجديدة على فرعين منفصلين. الآن أنت جاهز لتحديث الفروع ودمجها في الفرع الرئيسي بحيث يكون الأخير جاهزًا لدفع الشفرة إلى مستودع بعيد.
لضمان أن الميزات الجديدة تعمل معًا بشكل صحيح، من الجيد دمج فروع الميزات في بعضها البعض ثم القيام ببعض الاختبارات. سيسمح دمج ثلاثي الطرق لنا بدمج فرعين منفصلين مع سلفهما المشترك.
لنلقي نظرة على الخطوات اللازمة لعمل دمج ثلاثي الاتجاهات مع الفرع المستهدف. في المثال أدناه، سنبدأ بإنشاء فرع جديد، وإضافة عمليتي دمج إليه، ثم سنقوم بدمجه مع الفرع الرئيسي باستخدام الدمج الثلاثي.
أولاً، لنبدأ بإنشاء فرع “new-feature” والانتقال تلقائياً إليه باستخدام أمر git checkout. عند تحديد -b مع هذا الأمر، يتسبب في إنشاء فرع جديد:
git checkout -b new-feature main
بعد ذلك، سنضيف بعض الملفات وعملية دمج جديدة إلى فرعنا باستخدام الأوامر التالية:
git add <file>
git commit -m "Start a feature"
ثم سنضيف عملية دمج أخرى إلى فرعنا الجديد باستخدام الأوامر التالية:
git add <file>
git commit -m "Finish a feature"
بعد أن قمنا بإضافة كود جديد إلى فرعنا الجديد، عليك أن تتخيل حالة حيث يستمر الفرع الرئيسي أيضا في التطور. سنعود أولاً إليه باستخدام أمر git checkout:
git checkout main
بعد ذلك، سنضيف عملية دمج جديدة إلى الفرع الرئيسي لدينا:
git add <file>
git commit -m "make some changes to Main"
الآن، نريد دمج الفرع “new-feature” الذي قمنا بإنشائه مسبقا مع الفرع الرئيسي المُحدث. حيث سيستمر العمل على الفرع الرئيسي، وسننهي بحذف الفرع “new-feature” باستخدام أمر git branch.
git merge new-feature
git branch -d new-feature
الآن، قمنا بدمج فرعينا مع السلف المشترك إلى الفرع الرئيسي لدينا. والأخيرة الآن جاهزة للدمج في مستودعك البعيد وزيادة مشروع البرنامج الخاص بنا، وسنرى كيفية فعل ذلك بعد ذلك.
كيفية دمج فرع Git مع مستودع بعيد
قد تحتاج أحيانًا إلى دمج فرع في مستودع بعيد. دعنا نتبع الخطوات التي يجب اتباعها لتحقيق ذلك.
لنتخيل حالة حيث كتبت كودًا جديدًا لميزة جديدة يرغب مالك المنتج في إنشائها. بعد اختبار الكود الخاص بك ومراجعته مع مالك المنتج، أنت الآن جاهز لدمج جهدك الشاق في مستودع فريقك البعيد.
كما ذكر سابقًا، يجب عليك ألا تتمكن أبدًا من دفع كودك إلى الفرع الرئيسي مباشرة. يجب عليك دائمًا احترام سير العمل في Git الذي شرحناه في بداية هذا الدليل.
بعد مراجعة عملية Git، دعنا نقوم بدمج كودك. بعد استكمال الفحص، لدينا الآن فرعًا محدّثًا: تم سحب أحدث التحديثات إلى الفرع الرئيسي في مستودعك المحلي.
أنت الآن واقفٌ عند أبواب المستودع البعيد. كيف تصل إليه؟ ببساطة، سنستخدم بعض أوامر git إضافية.
كممارسة جيدة، يجب التحقق دائمًا من حالة الفرع الخاص بك باستخدام الأمر git status. سيظهر هذا الأمر الملفات التي تمت إضافتها، إزالتها، تتبعها، أو عدم تتبعها.
git status
يجب أيضًا التأكد مما إذا كنت قد أضفت ملفات غير متتبعة. في هذه الحالة، يجب عليك إضافتها حتى تتم تتبعها وإضافتها إلى العملية.
يمكنك استخدام أمر git add لإضافة جميع الملفات التي قمت بإنشائها في تطويرك. الآن، قد تحتاج إلى كتابة أسماء بعض الملفات إذا كنت ترغب في إضافة ملفات محددة فقط. إذا كنت ترغب في إضافة جميع الملفات، استخدم “.” لإضافة جميع الملفات.
بعد ذلك، سنستخدم أمر git commit لتأكيد جميع الملفات التي قمنا بإضافتها في الخطوة السابقة. ستحتاج إلى استخدام علم -m لكتابة رسالة، وإلا ستدخل وضع محرر النص لكتابة رسالة، وهو عملية غير مبسطة.
بالنسبة لرسالتك، يمكنك كتابة ملاحظة سريعة حول ما فعلت. على سبيل المثال، “أنشأت ميزة جديدة رائعة وأضفت أيقونة جديدة إلى القائمة وأضفت إصلاحات للأخطاء.”
git commit -m “<your commit message goes here>”
وأخيرًا، يمكنك استخدام أمر git push لرفع فرعك إلى مستودع التحكم عن بعد.
git push --set-upstream origin <<your branch name>>
الآن، بعد رفع فرعك، ستحتاج إلى الانتقال إلى GitHub أو حيثما يتم استضافة مستودعاتك البعيدة، والعثور على رفعك الأخير، والنقر على Create pull request.

بمجرد النقر على هذا الزر، ستنتقل إلى صفحة لإضافة المراجعين وأعضاء فريقك الذين سيوافقون أو يرفضون طلب الاندماج الخاص بك. في الحالة الثانية، سيتمكنون من إضافة تعليقات حول ما يجب تصحيحه قبل السماح لك بدمج فرعك في الفرع الرئيسي عن بعد.

بمجرد اكتمال المراجعة وموافقة طلب الدمج الخاص بك، ستتوفر زر الدمج. انقر فوق هذا الزر لبدء الدمج. إذا نجح الدمج، ستحصل على رسالة تؤكد أن الكود الجديد قد تمت إضافته.

تهانينا! لقد حصلت على الأساسيات لاستخدام أمر دمج جيت!
الاستنتاج
أمر الدمج في جيت هو أمر قوي يتيح لك ولفريقك استخدام فروع مختلفة للعمل على ميزات جديدة، ثم جلبها معًا إلى مستودعك الرئيسي.
لقد تعلمت الخطوات اللازمة لإنشاء الفروع، دمجها، إضافة ملفات وتعهدات إليها، والأهم من ذلك، رفع تلك الفروع إلى مستودع منبثق. بالإضافة إلى ذلك، أنت الآن تفهم كيفية عمل دمج الإسقاط السريع لدمج الفروع ذات الصلة فيما يستخدم أمرًا واحدًا، وهو ما يمكن أن يساعد بشكل كبير في جعل أي عمل تطوير أكثر كفاءة.
جيت هي أداة قوية يمكنها أن تفعل الكثير. كلما تعلمت المزيد حول الأوامر المختلفة التي يمكنك استخدامها، كلما كنت ستصبح أفضل كمطور. الآن بعد أن تعلمت كل ما تحتاج معرفته حول دمج الفروع، حان الوقت للذهاب وتعلم الأوامر الأخرى. حظًا سعيدًا في رحلتك لاحتراف جيت!