--- title: How to Use Git Rebase localeTitle: كيفية استخدام 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](//forum.freecodecamp.com/t/understand-how-to-use-git-merge/13215) دعونا تشغيل `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:](//forum.freecodecamp.com/images/emoji/emoji_one/slight_smile.png?v=2 ": slight_smile:") ### سحق إذا كان لديك عدة **[إلتزامات تريد إسقاطها](//forum.freecodecamp.com/t/how-to-squash-multiple-commits-into-one-with-git/13231)** في واحدة ، اتبع التعليمات الخاصة بـ **[Squashing](//forum.freecodecamp.com/t/how-to-squash-multiple-commits-into-one-with-git/13231)** .