ما هو rebase؟
ينقل commits فرعك ليبدأ من أحدث نقطة في main، فيُنتج تاريخًا خطّيًا نظيفًا.
git switch feature
git rebase main
rebase مقابل merge
- merge: يحفظ التاريخ كما حدث (commit دمج).
- rebase: يعيد كتابة التاريخ ليبدو خطّيًا (أنظف لكنه يغيّر الـ hashes).
تحديث الفرع قبل PR
git switch feature
git rebase main # ادمج تحديثات main أوّلًا
قاعدة ذهبية
⚠️ لا تُعِد كتابة (rebase) تاريخًا دُفع ومشارَكٌ مع آخرين — يربك زملاءك. استخدم rebase على فروعك المحلّية فقط قبل المشاركة.
عند التعارض
# حُلّ التعارض ثم:
git add .
git rebase --continue
git rebase --abort # للإلغاء
🎯 التالي: التراجع (reset و revert و restore).