بوابة-مشاكل مع ريباس التفاعلية وسحق
سؤال
أعلم أن هناك الكثير من الأسئلة حول هذا الموضوع ، لكن لا يمكنني العثور على الإجابة التي أبحث عنها على الإطلاق.
أنا فقط دمج فرع مهمتي في سيدي ، وأنا على استعداد لدفع التغييرات إلى الفرع الرئيسي البعيد.ومع ذلك ، يتم عرضها على أنها التزامين:
commit 878c07412aab6a6b06b7fc8dd84c2418cc4f31d8
Merge: 9ffa590 c9f5552
Author: ***
Date: Mon May 21 16:02:36 2012 +0100
Merge branch 'modelUpdate4'
Conflicts:
***.xcodeproj/project.pbxproj
commit c9f5552862872673317701c3dffd7fb6b6daa02c
Author: ***
Date: Mon May 21 15:03:21 2012 +0100
Modified model according to requests. Repopulated seeded database.
هذا هو إخراج سجل بوابة واثنين من يرتكب أود أن الاسكواش واحدة.ومع ذلك ، عندما أفعل:
git rebase -i HEAD~2
في الواقع يعرض فقط 4 ارتكبت سابقا (ودفعت) يرتكب.أنا سوء فهم كيف يتم دمج فروع بلدي مرة أخرى?إذا حاولت و جيت ريباس-أنا هذا يعرض فقط أول ارتكاب في قائمة سجل جيت.
شكراً!
المحلول
منذ قلت أربعة يرتكب دفعت بالفعل ، وأنا التخمين الرسم البياني الخاص بك (git log --oneline --decorate --graph
) يبدو شيئا من هذا القبيل ، حيث كنت قد حصلت على المتفرعة يرتكب بين master
و modelUpdate4
دفعت بالفعل إلى الريبو البعيد:
* (master, modelUpdate4, HEAD) Merge branch 'modelUpdate4'
| \
| * (origin/modelUpdate4) Modified model according to requests. [HEAD^2]
| |
| * Another commit on modelUpdate4
| |
| * Yet another commit on modelUpdate4!
| |
* | (origin/master) Something that conflics with a commit in modelUpdate4 [HEAD~1]
| /
* Previous commit on master [HEAD~2]
HEAD~2
هو الوالد الأول من الوالد الأول ، ومنذ الخاص بك HEAD
هو دمج من modelUpdate4
في master
, ، فإنه يشير إلى اثنين يرتكب أسفل master
خط. HEAD^2
هو HEAD's
الوالد الثاني ، لذلك الالتزام من قبل HEAD
أسفل modelUpdate4
خط.(أنظر أيضا: http://paulboxley.com/blog/2011/06/git-caret-and-tilde)
إذا HEAD~2
هي قاعدتك الجديدة ، ستحصل على جميع الالتزامات بين HEAD~2
و master
في خط مستقيم.سيكون لديك أيضا للتعامل مع الصراع فرع في modelUpdate4
ارتكاب حيث يحدث.
* (master, HEAD) Merge branch 'modelUpdate4'
|
* Modified model according to requests. Repopulated seeded database.
|
* Another commit on modelUpdate4
|
* Yet another commit on modelUpdate4!
|
* Something on master that conflics with modelUpdate4
|
* Previous commit on master
إذا كان أي شخص آخر يستخدم تلك الفروع البعيدة ، أو كنت ترغب في الحفاظ على تاريخ المتفرعة الخاصة بك ، لا ريباس.سيعيد كتابة السجل الموجود بالفعل في الريبو البعيد ، والذي سيكون مجرد صداع لأي شخص آخر.ادفع الدمج للخارج وستكون ذهبيا.
بدلا من ذلك ، يمكنك إعادة القاعدة مباشرة origin/master
. origin/modelUpdate4
في نهاية المطاف في جيت بونيس ، ولكن لأنه فرع مهمة أنا أراهن كنت مجرد الذهاب لحذفه على أي حال.