git - गिट चेकआउट: स्विचिंग शाखाओं के साथ पथ अपडेट करना असंगत है




git-checkout remote-branch (8)

उपर्युक्त में से कोई भी मेरे लिए काम नहीं करता है। मेरी स्थिति थोड़ा अलग है, मेरी रिमोट शाखा मूल नहीं है । लेकिन एक अलग भंडार में।

git remote add remoterepo GIT_URL.git
git fetch remoterepo
git checkout -b branchname remoterepo/branchname

टिप: यदि आपको निम्न आउटपुट git branch -v -a में रिमोट शाखा नहीं दिखाई देती है तो इसे जांचने का कोई तरीका नहीं है।

1.7.5.4 पर काम करने की पुष्टि की

मेरी समस्या शाखा स्विच करते समय घातक गिट त्रुटि से संबंधित है।

मैं कमांड के साथ रिमोट शाखा लाने की कोशिश करता हूं

git checkout -b local-name origin/remote-name

लेकिन मुझे यह त्रुटि संदेश मिलता है:

घातक: गिट चेकआउट: पथ अपडेट करना शाखाओं के साथ असंगत है।
क्या आप 'मूल / रिमोट-नाम' चेकआउट करना चाहते हैं जिसे प्रतिबद्ध के रूप में हल नहीं किया जा सकता है?

यदि मैं मैन्युअल रूप से एक शाखा बना देता हूं और फिर रिमोट शाखा खींचता हूं, तो यह एक नया क्लोन बनाने और शाखा की जांच करने के समान ही काम करता है।

मैं उस भंडार पर क्यों काम नहीं करता जिसके साथ मैं काम करता हूं?


एक अरब बार लाने के बाद भी जोड़ा गया रिमोट दिखाई नहीं दिया, हालांकि ब्लॉब्स पूल में थे। किसी भी कारण से git remote add को गिट्स विकल्प को नहीं दिया जाना चाहिए। गिट लाने के लिए आप इसे रीफ्स बनाने के लिए मैन्युअल रूप से .git / config से हटा सकते हैं।


मुझे संदेह है कि रिमोट-नाम नाम की कोई रिमोट शाखा नहीं है, लेकिन आपने अनजाने में मूल / रिमोट-नाम नाम की एक स्थानीय शाखा बनाई है।

क्या यह संभव है कि आप किसी बिंदु पर टाइप करें:

git branch origin/remote-name

इस प्रकार मूल / रिमोट नाम नाम की एक स्थानीय शाखा बना रही है? यह आदेश टाइप करें:

git checkout origin/remote-name

आप या तो देखेंगे:

Switched to branch "origin/remote-name"

जिसका अर्थ है कि यह वास्तव में एक गलत नामित स्थानीय शाखा है, या

Note: moving to "origin/rework-isscoring" which isn't a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
  git checkout -b 

जिसका मतलब है कि यह वास्तव में एक दूरस्थ शाखा है।


मेरा मानना ​​है कि ऐसा तब होता है जब आप रिमोट ब्रांच को चेकआउट करने का प्रयास कर रहे हैं कि आपके स्थानीय गिट रेपो को अभी तक पता नहीं है। प्रयत्न:

git remote show origin

यदि आप जिस दूरस्थ शाखा को चेकआउट करना चाहते हैं, वह "नई रिमोट शाखाएं" के अंतर्गत है और "दूरस्थ रिमोट शाखाओं" नहीं है, तो आपको उन्हें पहले लाने की आवश्यकता है:

git remote update
git fetch

अब यह काम करना चाहिए:

git checkout -b local-name origin/remote-name

मेरे लिए मेरे पास एक टाइपो था और मेरी रिमोट शाखा मौजूद नहीं थी

रिमोट शाखाओं को सूचीबद्ध करने के लिए git branch -a का प्रयोग करें


यह बहुत सहज नहीं है लेकिन यह मेरे लिए अच्छा काम करता है ...

  mkdir remote.git & cd remote.git & git init
  git remote add origin $REPO
  git fetch origin $BRANCH:refs/remotes/origin/$BRANCH        

फिर गिट शाखा --track कमांड चलाएं ...

  git branch --track $BRANCH origin/$BRANCH

सफलता के बिना इस धागे में जो कुछ भी पढ़ा जा सकता था, उसके बाद मैंने इस पर ठोकर खाई: रिमोट शाखा "गिट शाखा-आर" में दिखाई नहीं दे रही है

यह पता चला कि मेरी .git / config फ़ाइल गलत थी। एक साधारण फिक्स करने के बाद सभी शाखाएं दिखाई गईं।

से जा रहे हैं

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/master:refs/remotes/origin/master

सेवा मेरे

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/*:refs/remotes/origin/*

चाल थी


सुनिश्चित नहीं है कि यह आपके प्रश्न के लिए सहायक या बिल्कुल प्रासंगिक है, लेकिन यदि आप रिमोट रिपोजिटरी से केवल एक ही शाखा लाने और चेकआउट करने का प्रयास कर रहे हैं, तो निम्न गिट कमांड चाल करेंगे:

url= << URL TO REPOSITORY >>
branch= << BRANCH NAME >>

git init
git remote add origin $url
git fetch origin $branch:origin/$branch
git checkout -b $branch --track origin/$branch




remote-branch