4.4 KiB
title | localeTitle |
---|---|
Git Rebase | الذهاب Rebase |
جيت ريباس
إعادة بناء فرع في Git هي طريقة لنقل كامل فرع إلى نقطة أخرى في الشجرة. أبسط مثال هو نقل فرع أبعد في الشجرة. لنفترض أن لدينا فرعًا يختلف عن الفرع الرئيسي عند النقطة A:
/o-----o---o--o-----o--------- branch --oo--A--o---o---o---o----o--ooo--- master
عندما تتمرد ، يمكنك تحريكه على النحو التالي:
/o-----o---o--o-----o------ branch --oo--A--o---o---o---o----o--ooo master
للمراجعة ، تأكد من حصولك على جميع الإلتزامات التي تريدها في rebase في فرعك الرئيسي. تحقق من الفرع الذي ترغب في إعادة توجيهه واكتب git rebase master
(حيث الرئيسي هو الفرع الذي ترغب في إعادة تعيينه).
من الممكن أيضًا إعادة التمرير على فرع مختلف ، بحيث يتم إعادة سحب فرع كان يستند إلى فرع آخر (دعنا نسميه ميزة) على العنوان الرئيسي:
/---oo branch /---oooo---o--o------ feature ----o--ooA----o---o--ooo--o--o- master
بعد الحصول على git rebase master branch
أو git rebase master
عندما تقوم بسحب الفرع ، ستحصل على:
/---oooo---o--o------ feature ----o--ooA----o---o--ooo--o--o- master \---oo branch
Git rebase تفاعلية في وحدة التحكم
لاستخدام git rebase
في وحدة التحكم مع قائمة بالالتزامات ، يمكنك اختيار أو تعديل أو إسقاط rebase:
- أدخل
git rebase -i HEAD~5
مع الرقم الأخير أي عدد من الإلتزامات من أحدث الإصدارات التي تريد مراجعتها. - في vim ، اضغط على
esc
، ثمi
لبدء تحرير الاختبار. - على الجانب الأيسر يمكنك الكتابة فوق
pick
واحد من الأوامر أدناه. إذا كنت تريد إسقاط التزام في السابق وتجاهل رسالة الالتزام ، أدخلf
في مكانpick
الالتزام.
`pick 452b159 pick 7fd4192 pick c1af3e5 pick 5f5e8d3 pick 5186a9f
Rebase 0617e63..5186a9f onto 0617e63 (30 commands)
Commands:
p, pick = use commit
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like "squash", but discard this commit's log message
x, exec = run command (the rest of the line) using shell
d, drop = remove commit
These lines can be re-ordered; they are executed from top to bottom.
If you remove a line here THAT COMMIT WILL BE LOST.
However, if you remove everything, the rebase will be aborted.
Note that empty commits are commented out
`
- أدخل
esc
متبوعة:wq
. - إذا تم إعادة تعيينها بنجاح ، فستحتاج إلى فرض التغييرات على
git push -f
باستخدامgit push -f
لإضافة الإصدار المعاد توجيهه إلى repub github. - إذا كان هناك تعارض دمج ، فهناك عدد من الطرق لإصلاح هذا ، بما في ذلك اتباع الاقتراحات الواردة في هذا الدليل . إحدى الطرق هي فتح الملفات في محرر نصي وحذف أجزاء من الرمز الذي لا تريده. ثم استخدم
git add <file name>
متبوعًاgit rebase --continue
. يمكنك تخطي الالتزام المتضارب بإدخالgit rebase --skip
، الخروج من git rebase بإدخالgit rebase --abort
في وحدة التحكم الخاصة بك.