यदि आप कोई अंतर नहीं देख रहे हैं, तो मुझे संदेह है कि आप अपने परिवर्तन खो चुके हैं। आप संभवतः git reflog
का उपयोग रीबेज से पहले मौजूद शाखा की पहचान करने के लिए कर सकते हैं, और मूल शाखा वापस पाने के लिए git reset --hard <my-branch-tip-before-rebase>
का उपयोग कर सकते हैं। और हाँ, आपको प्रक्रिया को फिर से चलाने की आवश्यकता होगी। । :-(
मैं काफी यकीन है कि कैसे आप उन लोगों के साथ समाप्त हो गया है, हालांकि एक ही देख नहीं कर रहा हूँ मैं आदेश दिया था साथ निम्नलिखित को देखने के लिए अपेक्षा की होगी:
1 = 2 = 3 = 4 (master)
\ \
\ 5' = 6' = 8' (my_branch)
\
5 = 6 = 7
इस मामले में, आप शायद rebase --onto
का उपयोग किया है चाहिए:
git rebase --onto master <commit id for 6> my_branch
एक ग्राफ है कि इस तरह देखा के साथ छोड़ दिया है | यही कारण है कि:
1 = 2 = 3 = 4 (master)
\ \
\ 8' (my_branch)
\
5 = 6 = 7
जहां तक आपके परिवर्तनों को खोना है, यह विवाद विवादों से निपटने में थोड़ा सा अभ्यास करता है, खासकर जब आपके पास कुछ बड़े ब्लॉक होते हैं जो लगभग समान दिखते हैं। मैं हमेशा एक प्रतिबद्धता द्वारा पेश किए गए वास्तविक अंतर को देखने का प्रयास करता हूं, और उस परिवर्तन को छेड़छाड़ करने का प्रयास करता हूं और इसे उचित तरीके से शाखा में पहले से ही विलय करता हूं। मैं आसानी से देख सकता हूं कि आपका परिवर्तन कैसे खो गया हो सकता है।
याद रखने की एक बात। यदि आप विलय विवादों के समूह की अपेक्षा नहीं करते हैं - क्योंकि आप महसूस नहीं करते हैं कि स्रोत पर्याप्त रूप से अलग हो गए हैं, तो देखकर कोई गलत काम करने का चेतावनी झंडा है। git rebase --abort
करके, शाखाओं की जांच करके और यदि आप किसी संघर्ष की अपेक्षा करते हैं तो फिर से जांच कर बैक अप करना अच्छा होता है। यह सुनिश्चित करना सुनिश्चित करें कि संघर्ष कहां हुआ था (आमतौर पर रिबेज आपको कमांड लाइन पर ले जाने से पहले "लागू हो रहा है ..." होता है)। यह आमतौर पर शुरू करने के लिए एक महान जगह है।
कभी-कभी, संघर्ष अपरिहार्य होते हैं, और काम करने के लिए कठिन होते हैं। लेकिन मुझे अभ्यास के साथ संदेह है, आप इस समस्या को कम कर देंगे।
शाखाओं के बीच परिवर्तनों को प्रत्यारोपित करने के बारे में अधिक जानकारी के लिए, git rebase मैन पेज देखें। "Rebase --onto" के लिए खोजें। पहली हिट आपको किसी अन्य शाखा में परिवर्तनों को प्रत्यारोपित करने के बारे में बात करते हुए एक अनुभाग में लाना चाहिए।
जब आपने 'गिट रिबेस --स्किप' ('--continue' के बजाय) किया था, तो क्या यह संभव है कि आपने उस परिवर्तन को" छोड़ दिया "जो वास्तव में अभी भी रीबेज के दौरान सार्थक परिवर्तन था? –
यह उत्तर देखें: http://stackoverflow.com/a/4851776/450609।मुझे उस परिवर्तन को छोड़ने के लिए गिट रीबेस --स्किप का उपयोग करना था जिसे मैं मैन्युअल रूप से विलय कर दूंगा। – dave
यदि आपने मैन्युअल रूप से विलय किया है तो आप आमतौर पर '--continue' करना चाहते हैं। मर्ज का नतीजा "कोई बदलाव नहीं" होने पर आपको केवल छोड़ना होगा। आपने कितने बदलाव छोड़े और आपने वास्तव में कितने आवेदन किए? –