في هذا المنشور ، سوف نعرضك كيفية دمج فرعين في git . يتيح المتفرعة العديد من المطورين بالعمل بشكل مستقل ومتزامن على نفس قاعدة الكود. غالبًا ما يقوم المطورون بإنشاء فروع لإنشاء ميزات جديدة أو إصلاح الأخطاء دون التأثير على الرمز الرئيسي. بمجرد اكتمال العمل ، تحتاج هذه التغييرات إلى الجمع بين الفرع الرئيسي. وتسمى هذه العملية دمج.
أي أمر يستخدم لدمج فرعين؟
هناك طرق متعددة لدمج الكود في GIT. على سبيل المثال ، يمكنك استخدام git merge
أو CB39843738A616D9A4842C53499F8056B5AC8E. ومع ذلك ، إذا كنت تعمل في بيئة فريق ، فيمكنك إنشاء ملف طلب سحب على github لدمج التغييرات الخاصة بك في الفرع الرئيسي. في هذا المنشور ، سنغطي كلتا الطريقتين بالتفصيل.
كيفية دمج فرعين في غيت؟
ل دمج فرعين في git ، يمكنك استخدام إحدى الطرق التالية:
- باستخدام طلب سحب (على جيثب)
- باستخدام دمج أو Rebase (في GIT المحلي)
لفهم عملية الدمج ، دعنا أولاً ننشئ مستودعًا جديدًا على Github.
قم بتسجيل الدخول إلى حساب GitHub الخاص بك. انقر جديد في الجزء الأيسر من لوحة القيادة الخاصة بك. املأ التفاصيل المطلوبة تحت إنشاء مستودع جديد . لهذا المثال ، سنقوم بتسمية المستودع TWC-MERGE-DEMO . حدد المربع لإضافة أ ملف ReadMe . انقر إنشاء مستودع .
في هذه المرحلة ، يحتوي المستودع على واحد readme.md ملف (ملف Markdown لتخزين معلومات المشروع الأساسية) و Compless ، الالتزام الأولي ينشئ هذا github تلقائيًا عند إضافة readme.
دعونا نجري تغييرًا في المستودع ونلزم التزامًا آخر. انقر فوق يحرر (قلم رصاص) أيقونة بجوار readme.md . قم بإجراء أي تغيير صغير على المحتوى وانقر ارتكاب التغييرات . في حوار التغييرات ، أدخل اسم و وصف لالتزامك وانقر مرة أخرى ارتكاب التغييرات .
يُظهر المستودع الآن هذا التغيير الجديد كأحدث الالتزام. الآن دعنا نستنسخ المستودع إلى جهازنا المحلي.
انقر فوق شفرة المنسدلة بجانب اسم المستودع. تحت المحلي ، انقر فوق ينسخ أيقونة بجانب رابط HTTPS.
بعد ذلك ، انتقل إلى سطح المكتب الخاص بك و افتح رمز الاستوديو المرئي (نفترض أن لديك بالفعل رمز الاستوديو المرئي و GIT مثبت وتكوين على جهاز كمبيوتر Windows الخاص بك ). انقر فوق المستكشف أيقونة في الجزء الأيسر وفتح الدليل حيث ستحتفظ بملفات مشروعك. لهذا المثال ، أنشأنا ملف فارغ دليل يسمى TWC_GIT_MERGE_DEMO .
بعد ذلك ، انقر فوق النقاط الثلاثة في شريط القائمة وحدد محطة> محطة جديدة . في المحطة ، النوع git clone
والصقه في رابط HTTPS باستخدام Ctrl + v ، ثم اضغط يدخل . سيؤدي ذلك إلى استنساخ مستودع GitHub إلى جهازك المحلي. سترى المجلد يظهر في جزء Explorer of Visual Studio Code.
بعد ذلك ، استخدم cd
للتبديل إلى مجلد المشروع المستنسخ:
cd twc-merge-demo
ثم قم بتشغيل الأمر التالي للتحقق من حالة GIT الحالية:
git status
يقوم الأمر أعلاه بإنشاء بعض النص الذي يؤكد أننا على الفرع الرئيسي (يوجد فرع واحد فقط حتى الآن) والرمز الموجود على جهازنا المحلي محدّث مع الكود في الفرع الرئيسي لمستودعنا الافتراضي على السحابة (الافتراضي أو 'الأصل' هو المستودع الذي نستنسخه محليًا على Syetem).
يمكننا التحقق من الفرع الذي نستخدمه حاليًا استخدام git branch
على النحو التالي:
هذا يدل على أننا على رئيسي فرع. الآن دعونا ننشئ فرعًا جديدًا يسمى الطريقة 1 والتبديل إليه. في المحطة ، قم بتنفيذ الأمر التالي:
git checkout -b method1
الآن دعنا نضيف جديدًا index.html ملف إلى الرمز أثناء وجودنا في فرع Method1. انتقل إلى جزء Explorer في Visual Studio Code. انقر بزر الماوس الأيمن في TWC-MERGE-DEMO مجلد واختيار ملف جديد . اسم الملف index.html ، أضف بعض رمز HTML عينة ، وحفظه.
ثم ، قم بالمرحلة وارتكاب التغييرات الخاصة بك باستخدام الأوامر التالية:
git add . git commit -m "Added index.html in method1 branch"
الآن هذا الملف الجديد ، index.html ، موجود في الطريقة 1 الفرع (ليس في رئيسي فرع). لدفع هذه التغييرات إلى github ، سنقوم بتنفيذ الأمر التالي:
git push origin method1
windows10 كاسحة الألغام
هذا الأمر يخلق فرعًا جديدًا اسمه الطريقة 1 على مستودع github البعيد لدينا ويدفع التغييرات المحلية إليها.
للتحقق من ذلك ، عد إلى مستودع GitHub في متصفحك وتحديث الصفحة. تحت الفروع القسم ، سترى الآن كليهما رئيسي و الطريقة 1 .
سنقوم الآن بدمج الطريقة 1 فرع في رئيسي . يمكن القيام بذلك بطريقتين.
1] باستخدام طلب سحب (على جيثب)
طلب سحب مفيد في إعداد الفريق. يسمح للمطورين بمراجعة وتغييرات الكود والموافقة عليها قبل دمجها في الفرع الرئيسي.
على جيثب ، سترى أ قارن وسحب طلب زر بجوار فرع Method1 الذي تم دفعه حديثًا. انقر فوقه. سترى الآن أنك تحاول الاندماج الطريقة 1 في رئيسي فرع. إضافة أ عنوان و وصف تلخيص التغييرات التي أجريتها. انقر إنشاء طلب سحب .
عندما نقوم بإنشاء طلب سحب ، تحدث الأشياء التالية:
- يتحقق GIT ما إذا كان يمكن دمج التغييرات من كلا الفرعين تلقائيًا. إذا لم يكن هناك صراعات ، فسيُسمح لك بدمج الفروع مباشرة. إذا كانت هناك صراعات ، فستطلب منك Git حلها يدويًا قبل المتابعة.
- في بيئات الفريق ، يجوز لكبار المطورين أو مديري المشاريع مراجعة التغييرات والتعليق عليها قبل الموافقة على الدمج.
نظرًا لعدم وجود صراعات في حالتنا ونحن المساهم الوحيد ، يمكننا ببساطة النقر فوق دمج طلب سحب .
أ يقترف رسالة يبدو أنه يعكس الدمج. المضي قدما وانقر تأكيد دمج لوضع اللمسات الأخيرة على العملية.
بعد ذلك ، سترى الرسالة ، ' تم دمج طلب السحب بنجاح وإغلاقه 'هذا يؤكد أن التغييرات من فرع Method1 قد تم دمجها بنجاح في الفرع الرئيسي.
للحصول على هذه التغييرات في GIT المحلي ، سنقوم بتنفيذ الأمر التالي في Visual Studio Code:
git pull origin main
2] باستخدام الدمج أو Rebase (في GIT المحلي)
بصرف النظر عن إنشاء طلب سحب على Github ، يمكنك أيضًا دمج فرعين محليًا باستخدام أوامر الدمج والتشويش. كلا 00A587296AB9942F1C19BEAD88000FDEFD709FA و CB39843738A616D9A4842C534999F8F8056B5AC8E دمج الفروع ، ولكن MERGE يحتفظ التاريخ مع MARGE RESEMANTIONS إلى إنشاء ANIRATE.
إليك كيفية عمل كلا الأوامر:
التبديل إلى الفرع الرئيسي
git checkout main
ثم قم بدمج فرع Method1 إلى الرئيسي:
git merge method1
أو ، إذا كنت على Method1 وتريد إعادة صياغته على الرئيسية:
git checkout method1 git rebase main
ثم عد إلى الفرع الرئيسي ودمج التغييرات إذا لزم الأمر.
أخيرًا ، ادفع النتيجة المدمجة إلى جيثب:
git push origin main
أتمنى أن تجد هذا مفيدًا.
يقرأ: ابحث عن جميع أوامر GIT في مكان واحد هنا في Git Explorer .
كيف تدمج فرعين في غيت بدون صراع؟
لدمج فرعين في GIT دون تعارض ، تأكد من أن كلا الفرعين محدثان مع أحدث التغييرات من المستودع البعيد عن طريق تشغيل 565B3AFF11B3331783033F374FDB1DDD64B2F28E. بعد ذلك ، تأكد من أن التغييرات في الفرعين لا تتداخل ، خاصة في نفس خطوط الكود. بمجرد التحقق ، قم بالتبديل إلى الفرع المستهدف وقم بتشغيل أمر الدمج. إذا لم تكن هناك تغييرات متضاربة ، فسيقوم GIT بإكمال الدمج تلقائيًا دون المطالبة بأي دقة يدوية.
اقرأ التالي: إصلاح غير قادر على العثور على git في المسار على جهاز الكمبيوتر Windows .
ملف التقسيم