4.2 KiB
title | localeTitle |
---|---|
How to Use Git Rebase | كيفية استخدام Git Rebase |
هل أشرت إلى هذه الصفحة للحصول على قبول العلاقات العامة؟ انتقل إلى اليمين إلى Git Rebase في FCC!
git rebase
هي أداة مفيدة للغاية وهي عبارة عن إعادة كتابة سجل git ، على الرغم من استخدامها الأكثر شيوعًا لتكرار الإلتزامات المتعددة في واحد. على الرغم من أنه مفيد في هذا السيناريو ، إلا أن هذه ليست الوظيفة الوحيدة التي يمكن لأداء git rebase
تنفيذها. في الواقع يثبت أنه أكثر فائدة عند استخدامه للوظيفة المقصودة التي يوحي بها اسمها: لتمهيد فرع بشكل أساسي. اسمحوا لي أن أشرح ما أعنيه بذلك.
دعنا نقول أن لديك مستودع مثل هذا:
--- Commit 5 ----------- auth branch / --- Commit 4 -------------- dev branch / --- Commit 1 ---- Commit 2 ---- Commit 3 -------------------------------- master branch
إذا أردت دمج auth
فرع مع dev
فرع، وسوف بوابة رمي خطأ في لكم، لأن برنامجك auth
فرع هو خارج التاريخ: أنه لا يأخذ في الحسبان الالتزام 4. سيكون لديك لجلب فرعك حتى- حتى الآن.
يوفر لك git طريقتين للقيام بذلك: الأمر merge
وأمر rebase
. من أجل استكشاف أمر merge
، قم بزيارة مقالة الويكي ذات الصلة: Git Merge
دعونا تشغيل rebase
الآن:
$ git checkout auth $ git rebase dev
سيبدو الريبو الآن هكذا:
--- Commit 5 --- auth branch / --- Commit 4 --------------------- dev branch / --- Commit 1 ---- Commit 2 ---- Commit 3 --------------------------------------- master branch
هل ترى ماذا حدث؟ أنقذت Git بشكل أساسي الإلتزامات في فرع auth
، "أزلتها" ، ثم أنشأتها مرة أخرى بنفس الإلتزامات بعد الالتزام في فرع dev
. هذا يعني أن Commit 4
موجود فقط في فرع dev
وليس فرع auth
! وهذا هو حقا كل ما في الامر! قد يبدو هذا مربكًا بعض الشيء في البداية ، لكن حاول فهم الرسم التخطيطي. هذه أداة مفيدة للغاية.
Git-Rebase at FCC
منع دمج النزاعات
إذا كنت تساهم في مصدر قاعدة البيانات FCC ، أو تخطط للقيام بذلك ، فقم دائمًا بتشغيل هذا الأمر قبل إجراء أي تغييرات في ملفاتك المحلية ودفعها:
git pull --rebase upstream staging
إذا لم يكن لديك upstream
إعداد ، ثم قم بتشغيل هذا الأمر قبل تشغيل الأمر أعلاه (git سيرمي خطأ لأنه لا يعرف ما هو upstream): git remote add upstream https://github.com/freecodecamp/freecodecamp.git
سيؤدي ذلك إلى سحب أحدث التغييرات من الفرع التدريبي FCC وتثبيتها مع فرع التدريج الخاص بك حتى لا يكون هناك أي تعارضات عند فتح PR
سحق
إذا كان لديك عدة إلتزامات تريد إسقاطها في واحدة ، اتبع التعليمات الخاصة بـ Squashing .