इनमें से कौन सी रेखा सही है?
git checkout 'another_branch'
या
git checkout origin 'another_branch'
या
git checkout origin/'another_branch'
git checkout 'another_branch'
या
git checkout origin 'another_branch'
या
git checkout origin/'another_branch'
जवाबों:
यदि another_branch
पहले से ही स्थानीय रूप से मौजूद है और आप इस शाखा पर नहीं हैं, तो git checkout another_branch
शाखा में बदल जाते हैं।
यदि another_branch
मौजूद नहीं origin/another_branch
है, लेकिन करता है, तो git checkout another_branch
इसके बराबर है git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
। इसके ऊपर another_branch
से बनाना origin/another_branch
और सेट करना origin/another_branch
है another_branch
।
यदि मौजूद नहीं है, तो git checkout another_branch
त्रुटि देता है।
git checkout origin another_branch
अधिकांश मामलों में त्रुटि देता है। यदि origin
एक संशोधन है और another_branch
एक फ़ाइल है, तो यह उस संशोधन की फ़ाइल की जांच करता है, लेकिन सबसे ज्यादा शायद यह नहीं है कि आप क्या उम्मीद करते हैं। origin
ज्यादातर में प्रयोग किया जाता है git fetch
, git pull
और git push
एक दूरस्थ, दूरस्थ भंडार करने के लिए यूआरएल के उपनाम के रूप।
git checkout origin/another_branch
origin/another_branch
मौजूद होने पर सफल होता है। यह किसी भी शाखा पर नहीं, अलग राज्य में होने की ओर जाता है। यदि आप नए कमिट करते हैं, तो नए कमिट किसी भी मौजूदा ब्रांच से उपलब्ध नहीं हैं और कोई भी ब्रांच अपडेट नहीं होगी।
अद्यतन :
जैसा कि 2.23.0 जारी किया गया है, इसके साथ हम git switch
शाखाओं को बनाने और स्विच करने के लिए भी उपयोग कर सकते हैं ।
यदि foo
मौजूद है, तो foo
निम्न पर स्विच करने का प्रयास करें :
git switch foo
तो foo
मौजूद नहीं है और origin/foo
मौजूद है, बनाने की कोशिश foo
से origin/foo
और उसके बाद करने के लिए स्विच foo
:
git switch -c foo origin/foo
# or simply
git switch foo
अधिक आम तौर पर, यदि foo
मौजूद नहीं है , तो foo
किसी ज्ञात रेफ या कमिट से बनाने का प्रयास करें और उसके बाद स्विच करें foo
:
git switch -c foo <ref>
git switch -c foo <commit>
यदि हम एक ही समय में गिटलैब और जीथब में एक भंडार का रखरखाव करते हैं, तो स्थानीय भंडार में दो origin
रीमोट हो सकते हैं, उदाहरण के लिए, गिटलब और गीथूब के github
लिए। इस मामले में भंडार है origin/foo
और github/foo
। git switch foo
शिकायत करेंगे fatal: invalid reference: foo
, क्योंकि यह पता नहीं है कि किस रेफरी से, origin/foo
या github/foo
बनाने के लिए foo
। हमें इसे आवश्यकता के अनुसार git switch -c foo origin/foo
या उसके साथ निर्दिष्ट करना होगा git switch -c foo github/foo
। यदि हम दोनों दूरस्थ शाखाओं से शाखाएँ बनाना चाहते हैं, तो नई शाखाओं के लिए विशिष्ट नामों का उपयोग करना बेहतर होगा:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
यदि foo
मौजूद है, तो किसी ज्ञात रेफ या कमिट को फिर foo
से बनाने (या रीसेट foo
करने) से रीक्रिएट / फोर्स-क्रिएट करने की कोशिश करें और फिर स्विच करें foo
:
git switch -C foo <ref>
git switch -C foo <commit>
जो इसके बराबर हैं:
git switch foo
git reset [<ref>|<commit>] --hard
किसी ज्ञात रेफ या प्रतिबद्ध के अलग किए गए हेड पर स्विच करने का प्रयास करें:
git switch -d <ref>
git switch -d <commit>
यदि आप केवल एक शाखा बनाना चाहते हैं, लेकिन उसके लिए स्विच नहीं करते हैं, तो git branch
इसके बजाय उपयोग करें । किसी ज्ञात रेफ या कमिट से शाखा बनाने का प्रयास करें:
git branch foo <ref>
git branch foo <commit>
git checkout
कमांड बहुत सारी चीजें करता है, मेरी राय में। यही कारण है कि यहां ऑपरेशन के बहुत सारे तरीके हैं। यदि केवल एक चीज git checkout
किया था स्विच शाखाओं, इस सवाल का जवाब आसान होगा, लेकिन यह भी कर सकते हैं बनाने शाखाओं, और यहां तक कि विशिष्ट प्रतिबद्ध से फ़ाइलों को अलग बिना शाखाओं स्विचन।
git switch
एक शाखा पर स्विच करने के लिए उपयोग कर सकते हैं ।
git checkout
पुराने संस्करणों है, जो भी आधुनिक संस्करण में काम करता है के लिए बजाय।
गिट में दूसरी शाखा में स्विच करना। सीधा जवाब,
गिट-चेकआउट - शाखाओं को स्विच करें या कार्यशील ट्री फ़ाइलों को पुनर्स्थापित करें
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
शाखा स्विच करने से पहले सुनिश्चित करें कि आपके पास कोई भी संशोधित फाइल नहीं है, उस स्थिति में, आप बदलाव कर सकते हैं या आप इसे रोक सकते हैं।
[ git checkout "branch_name"
]
कहने का एक और तरीका है:
[ git checkout -b branch_name origin/branch_name
]
यदि "Branch_name" केवल दूरस्थ रूप से मौजूद है ।
[ git checkout -b branch_name origin/branch_name
] यदि आपके पास कई उपाय हैं तो यह उपयोगी है।
[ git checkout origin 'another_branch'
] मुझे यकीन नहीं है कि यह संभव है, AFAK आप इसे "लाने" कमांड का उपयोग करके कर सकते हैं - [ git fetch origin 'another_branch'
]
दैनिक जीवन में काम करने के लिए उपयोगी आदेश:
git checkout -b "branchname" -> creates new branch
git branch -> lists all branches
git checkout "branchname" -> switches to your branch
git push origin "branchname" -> Pushes to your branch
git add */filename -> Stages *(All files) or by given file name
git commit -m "commit message" -> Commits staged files
git push -> Pushes to your current branch
यदि आप चाहते हैं कि शाखा दूरस्थ शाखा को ट्रैक करे, जो बहुत ही आयात है यदि आप शाखा में परिवर्तन करने जा रहे हैं और परिवर्तन को खींच रहे हैं आदि, तो आपको वास्तविक चेकआउट के लिए ऐड-टी का उपयोग करने की आवश्यकता है:
git checkout -t branchname
जाँच : git branch -a
यदि आपको केवल एक शाखा मिल रही है। फिर नीचे स्टेप्स करें।
git config --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
परम का उपयोग करके ) किया था और अब आश्चर्य है कि आप error: pathspec 'another_branch' did not match any file(s) known to git
ऊपर बताए गए आदेशों का उपयोग करके दूसरी दूरस्थ शाखाओं को क्यों नहीं ला सकते हैं । यह निश्चित रूप से नहीं है कि मूल प्रश्न किस बारे में था, लेकिन यह दूसरों को यहां अपना सिर खरोंच करने में मदद कर सकता है।
मैं इसका उपयोग एक शाखा को किसी दूसरे पर स्विच करने के लिए कर रहा हूं, आप इसे मेरे लिए आकर्षण की तरह काम कर सकते हैं।
git स्विच [शाखा का नाम] या git चेकआउट [शाखा का नाम]
पूर्व: git स्विच विकसित या
git चेकआउट विकसित
git checkout [branch]
इस सवाल पर आने वाले अधिकांश उपयोगकर्ताओं के लिए