git मैं रिमोट गिट शाखा कैसे देखूं?




git-checkout remote-branch (18)

किसी ने एक साझा भंडार में git push origin test साथ test नामक एक शाखा को धक्का दिया। मैं git branch -r साथ शाखा देख सकता git branch -r

अब मैं रिमोट test शाखा की जांच करने की कोशिश कर रहा हूं।

मैंने कोशिश की:

  • git checkout test जो कुछ भी नहीं करता है

  • git checkout origin/test देता है * (no branch) । जो भ्रमित है। मैं "शाखा नहीं" कैसे हो सकता हूं?

मैं रिमोट गिट शाखा कैसे देखूं?

https://code.i-harness.com


अद्यतन करें

जैकब का जवाब वास्तव में इस पर सुधार करता है। गिट संस्करण ≥ 1.6.6 के साथ, केवल एक रिमोट के साथ, आप बस कर सकते हैं:

git fetch
git checkout test

चूंकि उपयोगकर्ता मसूकोमी एक टिप्पणी में बताते हैं, यदि आपके पास एकाधिक रिमोट हैं तो git checkout test आधुनिक गिट में काम नहीं करेगा। इस मामले में उपयोग करें

git checkout -b test <name of remote>/test

पुराना उत्तर

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

शाखा लाने के लिए, आपको बस इसकी आवश्यकता है:

git fetch origin

यह आपके लिए सभी रिमोट शाखाएं लाएगा। आप चेकआउट के लिए उपलब्ध शाखाएं देख सकते हैं:

git branch -v -a

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

git checkout -b test origin/test

स्वीकृत उत्तर आपके लिए काम नहीं कर रहा है?

जबकि पहला और चयनित उत्तर तकनीकी रूप से सही है , वहीं संभावना है कि आपने अभी तक सभी ऑब्जेक्ट्स को पुनर्प्राप्त नहीं किया है और रिमोट रिपोजिटरी से रीफ्रेश किया है। यदि ऐसा है, तो आपको निम्न त्रुटि प्राप्त होगी:

$ git checkout -b remote_branch origin/remote_branch

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

उपाय

अगर आपको यह संदेश प्राप्त होता है, तो आपको सबसे पहले git fetch origin जहां git checkout remote_branch चलाने से पहले origin रिमोट रिपोजिटरी का नाम है। प्रतिक्रियाओं के साथ एक पूर्ण उदाहरण यहां दिया गया है:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'

जैसा कि आप देख सकते हैं, git fetch origin को चलाने से किसी भी दूरस्थ शाखा को पुनर्प्राप्त किया गया था जिसे हम अभी तक हमारी स्थानीय मशीन पर ट्रैक करने के लिए सेट नहीं किए गए थे। वहां से, चूंकि अब हमारे पास रिमोट शाखा से git checkout remote_branch , इसलिए हम आसानी से git checkout remote_branch चला सकते हैं और हम रिमोट ट्रैकिंग के लाभ प्राप्त करेंगे।


आदेश

git fetch --all
git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>

के बराबर हैं

 git fetch --all

और फिर

 git checkout -b fixes_for_dev origin/development

दोनों development से latest fixes_for_dev


आप निम्न बैश स्क्रिप्ट के साथ सभी दूरस्थ शाखाओं को ट्रैक करना शुरू कर सकते हैं:

#!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`
  do git branch -f --track "$branch" "origin/$branch"
done

यहां एक सिंगल-लाइन संस्करण भी है:

git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;

इस मामले में, आप शायद एक स्थानीय test शाखा बनाना चाहते हैं जो रिमोट test शाखा को ट्रैक कर रही है:

$ git branch test origin/test

git पुराने संस्करणों में, आपको एक स्पष्ट --track विकल्प की आवश्यकता --track है, लेकिन जब आप रिमोट शाखा को बंद कर रहे हैं तो यह डिफ़ॉल्ट है।


उपयोग:

git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

अन्य जवाब मेरे सौम्य मामले में आधुनिक गिट के साथ काम नहीं करते हैं। रिमोट शाखा नई है, तो आपको पहले खींचने की आवश्यकता हो सकती है, लेकिन मैंने उस मामले की जांच नहीं की है।


खाली फ़ोल्डर बनाने के लिए कृपया कमांड का पालन करें। इसे दर्ज करें और इस कमांड का उपयोग करें:

saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url
Cloning into 'iPhoneV1'...
remote: Counting objects: 34230, done.
remote: Compressing objects: 100% (24028/24028), done.
remote: Total 34230 (delta 22212), reused 15340 (delta 9324)
Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done.
Resolving deltas: 100% (22212/22212), done.
Checking connectivity... done.
saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/
saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery
Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from origin.
Switched to a new branch '1_4_0_content_discovery'

तुम कोशिश कर सकते हो

git fetch remote
git checkout --track -b local_branch_name origin/branch_name

या

git fetch
git checkout -b local_branch_name origin/branch_name

मैं error: pathspec 'desired-branch' did not match any file(s) known to git. देखने में एक स्थिति में फंस गया था error: pathspec 'desired-branch' did not match any file(s) known to git. उपरोक्त सभी सुझावों के लिए। मैं गिट संस्करण 1.8.3.1 पर हूं।

तो यह मेरे लिए काम किया :

git fetch origin && git checkout branch_name 

पीछे स्पष्टीकरण यह है कि मैंने देखा है कि रिमोट शाखा लाने पर, इसे FETCH_HEAD पर लाया गया था:

git fetch origin desired-branch
git checkout -b desired-branch FETCH_HEAD

मैं निम्नलिखित कमांड का उपयोग करता हूं:

git checkout --track origin/other_remote_branch

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

उदाहरण के लिए, मैंने #9773 नाम की एक दूरस्थ शाखा को चेकआउट करने का प्रयास किया लेकिन कमांड ठीक से काम नहीं करता है, जैसा कि नीचे दी गई तस्वीर में दिखाया गया है:

किसी कारण से मुझे आश्चर्य हुआ कि क्या तेज प्रतीक (#) के साथ कुछ करने के लिए कुछ हो सकता है, और फिर मैंने शाखा नाम के आस-पास एक उद्धरण के साथ कोशिश की, जैसे '#9773' 9 773 की तुलना में '#9773' राहेन, और यह ठीक काम करता था।

$ git checkout -b '#9773' origin/'#9773'

यदि शाखा origin रिमोट के अलावा किसी अन्य चीज़ पर है तो मुझे निम्न कार्य करना पसंद है:

$ git fetch
$ git checkout -b second/next upstream/next

यह upstream रिमोट पर next शाखा को second/next नामक स्थानीय शाखा में चेकआउट करेगा। जिसका अर्थ है कि यदि आपके पास पहले से ही एक स्थानीय शाखा है, तो यह संघर्ष नहीं करेगा।

$ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next

रिमोट शाखा के नाम से बस git checkout चलाएं। गिट स्वचालित रूप से एक स्थानीय शाखा बना देगा जो रिमोट को ट्रैक करता है:

git fetch
git checkout test

हालांकि, अगर वह शाखा नाम एक से अधिक रिमोट में पाया जाता है, तो यह काम नहीं करेगा क्योंकि गिट को यह नहीं पता कि किस का उपयोग करना है। उस स्थिति में आप या तो उपयोग कर सकते हैं:

git checkout --track origin/test

या

git checkout -b test origin/test

2.19 9 में, गिट ने checkout.defaultRemote कॉन्फ़िगरेशन सीखा, जो इस तरह की अस्पष्टता को हल करते समय डिफ़ॉल्ट रूप से दूरस्थ को निर्दिष्ट करता है।


सबसे पहले, आपको करने की ज़रूरत है:

git fetch # यदि आप शाखा के नाम के बारे में नहीं जानते हैं

git fetch origin branch_name

दूसरा, आप रिमोट शाखा को अपने स्थानीय में देख सकते हैं:

git checkout -b branch_name origin/branch_name

-b आपके चयनित रिमोट शाखा से निर्दिष्ट नाम में नई शाखा तैयार करेगा।


git fetch && git checkout your-branch-name


git remote show <origin name> कमांड सभी शाखाओं (अन-ट्रैक वाली शाखाओं सहित) सूचीबद्ध करेगा। फिर आप रिमोट शाखा नाम ढूंढ सकते हैं जिसे आपको लाने की आवश्यकता है।

उदाहरण:

$ git remote show origin

दूरस्थ शाखाएं लाने के लिए इन चरणों का उपयोग करें:

git fetch <origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)

उदाहरण:

$ git fetch origin test:test
$ git checkout test

ठीक है , जवाब आसान है ... आप मूल रूप से शाखा देखते हैं, लेकिन आपके पास अभी तक एक स्थानीय प्रति नहीं है! ...

आपको शाखा fetch की जरूरत है ...

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

git fetch && git checkout test

मैंने मतभेदों को साझा करने के लिए नीचे दी गई छवि भी बनाई है, देखें कि कैसे कार्य करता है और यह pull लिए अलग pull :


नव निर्मित शाखाएं प्राप्त करने के लिए

git fetch

दूसरी शाखा में स्विच करने के लिए

git checkout BranchName




remote-branch