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

53 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
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)** .