4.4 KiB
title, localeTitle
| 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في وحدة التحكم الخاصة بك.