git - Can't pull without saying which branch to rebase against -


मैंने एक स्क्रिप्ट लिखी है जो रिबिंग करता है।

जब मैं $ my- रिबैस , मुझे एक त्रुटि मिलती है:

आपने मुझसे कहा था कि आप किस शाखा के खिलाफ रिसाव करना चाहते हैं, खींचने के लिए और आपकी कॉन्फ़िगरेशन फ़ाइल में 'branch.rohan_branch1.merge' मुझे बताओ, या तो नहीं। कृपया कमांड लाइन पर आप किस शाखा का उपयोग करना चाहते हैं, कृपया निर्दिष्ट करें और फिर से प्रयास करें (उदा। 'Git pull')। विवरण के लिए git-pull (1) देखें।

यदि आप अक्सर एक ही शाखा से रिसाइज़ करते हैं, तो आप अपनी कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित जैसा कुछ इस्तेमाल करना चाह सकते हैं:

  [शाखा "रोहन_ब्रंच 1"] रिमोट = & lt; उपनाम & gt; मर्ज = & lt; रिमोट-रिफ & gt; रिबेस = सच [दूरस्थ "& lt; उपनाम & gt;"] url = & lt; url & gt; फ़ेच = & lt; refspec & gt;    

मेरे पास मास्टर शाखा (काम की नकल है) और फिर मैंने रोहन_ब्रंच 1 बनाया; ऐसा लगता है कि कुछ समय बाद मैंने मास्टर में रिबेस किया था।

अब मैं रोहन_ब्रॅंच 1 को अप-टू-डेट रखना चाहता हूं। मैं इस त्रुटि से कैसे छुटकारा पा सकता हूं?

यदि आप खींचते समय रीबेस करना चाहते हैं ( git खींचें - रिबेस ), आपको स्थानीय शाखा से जुड़ा एक अपस्ट्रीम शाखा होनी चाहिए जिस पर आप खींच रहे हैं:

  git शाखा --set-upstream rohan_branch1 टोटल / अन्य ब्रांच   

(जैसा कि "" में वर्णित है)

वहां से, आप इस पर विचार कर सकते हैं:

  फ़ंक्शन गुप {# subshell `सेट-ई` और` जाल` (सेट-ई #) यदि कोई समस्या है तो # git-up का उपयोग करें, अगर गिट-अप & gt; / dev / null 2 ​​& gt; ब्रांच = $ (git प्रतीकात्मक- ref -q HEAD) शाखा = $ {ब्रांच ## रिफ़ / सिर} शाखा = $ {ब्रांच: -HEAD} अगर [-z "$ (git config शाखा) $ BRANCH.remote) "-o -z" $ (git config branch। $ BRANCH.merge) "] तब" \ "$ BRANCH \" गूंज एक ट्रैकिंग शाखा नहीं है। "& Gt; और amp; 2 बाहर निकलें 1 fi # कमांड आउटपुट को कैप्चर करने के लिए एक अस्थायी फ़ाइल बनाइए टेम्पम = "` mktemp -t gup.XXXXXX` " जाल '{आरएम-एफ "$ टेम्फिफ़ल"; } 'बाहर निकलें # अगर हम पीछे की तरफ हैं, तो हमें अपडेट करने की आवश्यकता है अगर git स्थिति | Grep "# आपकी शाखा" & gt; "$ TEMPFILE", तो संदेश से # निकालने ट्रैकिंग शाखा UPSTREAM = $ (बिल्ली "$ TEMPFILE" | कट-डी "'' -f 2) अगर [-z" $ UPSTREAM "] तो गूंज अपस्ट्रीम शाखा का पता नहीं लगा सका & gt; & amp; ; 2 बाहर निकलें 1 फाई # क्या हम तेजी से आगे बढ़ सकते हैं? CAN_FF = 1 grep -q "फास्ट फॉरवर्ड किया जा सकता है" "$ TEMPFILE" || CAN_FF = 0 # कोई भी अव्यवस्थित परिवर्तन छिपाने के लिए टी "$ टेम्प्इल" ["$ {PIPESTATUS [0]}" -ईसी 0] || बाहर निकलें 1 # नोट करें कि अगर कुछ भी हो गया था HAVE_STASH = 0 grep -q "कोई स्थानीय परिवर्तन नहीं" "$ TEMPFILE" || HAVE_STASH = 1 यदि ["$ CAN_FF" -ए 0] उसके बाद # अगर कुछ भी स्थानीय रूप से नहीं बदला है, तो बस तेज़ फॉवर्ड जीआईटी मर्ज --एफ "$ UPSTREAM" # # अपस्ट्रीम के ऊपर हमारे परिवर्तनों को रिबेस करें, लेकिन किसी भी मर्ज जीआईटी रिबैस -p "$ UPSTREAM" फ़िक्स # पर रखें अगर कोई भी स्टैश किए गए परिवर्तनों को पुनर्स्थापित करें यदि ["$ HAVE_STASH" -ए 0] तो git छिपाने की जगह पॉप फाई फाई)}   

जीआईटी खींचने के बजाय- रिबेस सीधे, यह अनछुटेड फाइलों का प्रबंधन करेगा (छिपाने की जगह) और मर्ज कमिट्स को संरक्षित करेगा ( git rebase -p ) रिबिंग करते समय।
("" "" से देखें)

Comments