freeCodeCamp/guide/arabic/miscellaneous/how-to-use-git-rebase/index.md

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 :slight_smile:

سحق

إذا كان لديك عدة إلتزامات تريد إسقاطها في واحدة ، اتبع التعليمات الخاصة بـ Squashing .