एक कमिटमेंट का कोई भी चेकआउट जो आपकी एक शाखा का नाम नहीं है, आपको एक अलग-थलग पड़ जाएगा। एक SHA1 जो एक शाखा की नोक का प्रतिनिधित्व करता है अभी भी एक अलग सिर देता है। केवल स्थानीय शाखा नाम का एक चेकआउट उस मोड से बचता है।
एक अलग सिर के साथ प्रतिबद्ध देखें
जब हेड को अलग किया जाता है, तो सामान्य की तरह काम करता है, इसके अलावा कोई नामित शाखा अपडेट नहीं होती है। (आप इसे एक अनाम शाखा के रूप में सोच सकते हैं।)
उदाहरण के लिए, यदि आप किसी "रिमोट ब्रांच" को पहले ट्रैक किए बिना चेकआउट करते हैं, तो आप अलग किए गए HEAD के साथ समाप्त हो सकते हैं।
गिट देखें : सिर को अलग किए बिना स्विच शाखा
Git 2.23 (अगस्त 2019) के साथ, आपको भ्रमित करने वाली git checkout
कमांड का उपयोग करने की आवश्यकता नहीं है ।
git switch
इसके अलावा एक शाखा की जाँच कर सकते हैं, और एक अलग सिर प्राप्त कर सकते हैं:
- इसका एक स्पष्ट
--detach
विकल्प है
HEAD~3
नई शाखा बनाए बिना अस्थायी निरीक्षण या प्रयोग के लिए प्रतिबद्ध होने की जाँच करने के लिए:
git switch --detach HEAD~3
HEAD is now at 9fc9555312 Merge branch 'cc/shared-index-permbits'
- यह एक दूरस्थ ट्रैकिंग शाखा की गलती से अलग नहीं हो सकता
देख:
C:\Users\vonc\arepo>git checkout origin/master
Note: switching to 'origin/master'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
बनाम नई git switch
कमांड का उपयोग करना :
C:\Users\vonc\arepo>git switch origin/master
fatal: a branch is expected, got remote branch 'origin/master'
यदि आप दूरस्थ शाखा पर नज़र रखने वाली एक नई स्थानीय शाखा बनाना चाहते हैं:
git switch <branch>
यदि <branch>
नहीं पाया जाता है, लेकिन <remote>
एक मिलान नाम के साथ ठीक एक रिमोट (इसे कॉल करें ) में एक ट्रैकिंग शाखा मौजूद है , तो इसके बराबर माना जाता है
git switch -c <branch> --track <remote>/<branch>
और कोई गलती नहीं!
और अधिक अवांछित अलग नहीं!
branch-name@{n}
, nth के पिछले स्थान की जाँच करेंbranch-name
। लेकिन कोई बात नहीं, कुछ बिंदु पर एक होना चाहिए थाgit checkout <rev>
। यदि वह घंटी नहीं बजाता है, तो संभवतः आपने वही किया होगा जिसका उल्लेख किया है - करने की कोशिश कीgit checkout <file>
और दुर्घटना से संशोधन निर्दिष्ट करने में कामयाब रहे।