2012-04-02 7 views
10

तो, मेरे काम के माहौल में गिटूब पर रिमोट साथी के साथ ठीक एक शाखा है। मैं को git push को मर्ज करने वाले संदेशों को बनाने से रोकने के लिए git pull --rebase करने की कोशिश कर रहा हूं जो इस परियोजना पर काम करने वाले अन्य लोगों को नई जानकारी प्रदान नहीं करते हैं और केवल कार्यों को गम करते हैं। लेकिन जब मैं कोशिश करता हूं, तो यह मुझे देता है:"गिट पुल - रेबेस" की ओर जाता है "कई शाखाओं पर रीबेस नहीं कर सकता"

From https://github.com/our_profile/our_repository 
* branch   HEAD  -> FETCH_HEAD 
Cannot rebase onto multiple branches 

और पुल aborts। कॉलिंग git branch मुझे सूचित करता है कि मेरी स्थानीय मशीन पर केवल एक शाखा है, तो क्या चल रहा है?

+0

हाँ, और क्रियान्वित * 'Git पुल --rebase' * दूसरी बार काम करता है के लिए! ऐसा इसलिए है क्योंकि पहली क्रिया गिट के दौरान डेटा प्राप्त हुआ, ताकि रिमोट और स्थानीय मास्टर शाखाओं ने एक ही प्रतिबद्धता का संकेत देना शुरू कर दिया। –

उत्तर

9

कोशिश को निर्दिष्ट वास्तव में क्या दूरस्थ शाखा आप को खींचने के लिए चाहते हैं:

git pull --rebase origin branch 

वैकल्पिक रूप से आप भी git fetch पहले दूरस्थ रिपोजिटरी से सभी परिवर्तनों, और फिर मैन्युअल rebase कर सकते हैं:

git rebase origin/branch 
+0

यह लगभग काम करता है, लेकिन यह समाप्त हो गया है जिसमें कई फ़ाइलों को हटाने के लिए चिह्नित किया जा रहा है। मुझे उन कार्यों को बचाने के लिए जीयूआई को गिट करने के लिए जाना पड़ा था जो मैंने उन पर किया था। – bourgtai

+0

क्या आप जानते हैं कि यह स्थिति क्यों हुई? – dbn

-2

आसान समाधान मैंने पाया कि TortoiseGit के प्रासंगिक मेनू आइटम "गिट सिंक" का उपयोग करना था। इसमें आपकी वर्तमान कार्यशील शाखा पर & पुन: प्राप्त करने का माध्यम है।

+0

मैंने सोचा कि गिट पुल ने डिफ़ॉल्ट रूप से एक fetch किया था जो कि सभी fetch मैसेजिंग में आता है। उपर्युक्त क्या जोड़ता है? – Hazok

3

मेरे मामले में, मुझे दोनों रिमोट और के बारे में विशिष्ट होना चाहिए --rebase आदेश के अंत में ध्वज को स्थानांतरित करें।

तो: git pull origin master --rebase

इस जवाब से सीखा: Git: Cannot rebase onto multiple branches

संबंधित मुद्दे