سؤال

أعلم أن هناك الكثير من الأسئلة حول هذا الموضوع ، لكن لا يمكنني العثور على الإجابة التي أبحث عنها على الإطلاق.

أنا فقط دمج فرع مهمتي في سيدي ، وأنا على استعداد لدفع التغييرات إلى الفرع الرئيسي البعيد.ومع ذلك ، يتم عرضها على أنها التزامين:

    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 في نهاية المطاف في جيت بونيس ، ولكن لأنه فرع مهمة أنا أراهن كنت مجرد الذهاب لحذفه على أي حال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top