2014-10-26 16 views
23
* [971f835] (HEAD, original_idea) Now working here. Some comment 9 
* [692b673] Some comment 8 
* [3ebff62] Reverted to original idea. Some comment 7 
| * [72ea01d] (master) Decided it wasn't worth the effort. Some comment 6 
| * [985c1ad] Some comment 5 
| * [4d7d491] Some comment 4 
| * [0c697bb] Branched to try an idea. Some comment 3 
|/ 
* [7280b1f] Some comment 2 
* [5c2c6d0] Some comment 1 
* [bc7aac6] Initial commit 

तो, master पीछे छोड़ दिया गया। पता नहीं वो कैसे हुआ। एक बार मैंने फैसला किया कि मुझे उस शाखा के साथ किया गया था जिसने काम नहीं किया था, मैंने [7280b1f] की जांच की और वहां से जारी रखा।मास्टर को हेड में कैसे स्थानांतरित करें?

मैं इसे कैसे ठीक करूं? मैं यह कुख्यात "अलग सिर" मुद्दा?

क्या master को रेपो के इष्टतम स्वास्थ्य के लिए HEAD के साथ गठबंधन किया जाना है?

मेरा वर्कफ़्लो सुपर-सरल है। यह सिर्फ एक पाठ फ़ाइल का प्रबंधन कर रहा है। अधिकांश मामलों में यह है:

git add . 
git commit -am "Some comment" 

और यही वह है।

मैंने एक विचार करने का प्रयास किया और एक शाखा बनाई। जब यह काम नहीं करता था तो मैंने उस शाखा की जड़ की जांच की और git add/commit दिनचर्या पर वापस चला गया।

+0

के संभावित डुप्लिकेट [Git: मैं मास्टर/मूल के साथ अलग HEAD कैसे सामंजस्य कर सकते हैं] (http://stackoverflow.com/questions/5772192/git-how-can-i-reconcile-detached-head साथ-साथ मास्टर-उत्पत्ति) –

उत्तर

8

क्या यह कुख्यात "अलग सिर" मुद्दा है?

नहीं है, प्रमुख शाखा original_idea पर इशारा कर रही है

मास्टर रेपो के इष्टतम स्वास्थ्य के लिए सिर के साथ गठबंधन किया है?

नहीं है, मास्टर सिर्फ एक पारंपरिक नाम, आमतौर पर एक शाखा है जो आसानी से बनाने योग्य है और उम्मीद है कि एक काम स्नैपशॉट होने के लिए लिया जाता है।

मैं इसे कैसे ठीक करूं?

git checkout master 
git merge original_idea 

पता है कि अगर कोई विरोधात्मक परिवर्तन आप कर रहे हैं 'रहें:

आप एक और भंडार करने के लिए मास्टर धकेल दिया है, तो आप आप मास्टर में original_idea से बदलता है मर्ज करने के लिए की जरूरत है उन्हें हल करने की आवश्यकता होगी।

आप अभी तक एक और भंडार करने के लिए मास्टर धक्का दिया नहीं है, तो आप मास्टर हटा सकते हैं और original_idea से इसे पुन: हो सकता है। चेतावनी:मास्टर पर काम कर रहे सभी लोग अपने मास्टर शाखा को रीसेट करना होगा।

$ git checkout master 
Switched to branch 'master' 

$ git checkout -b experiment_1 
Switched to a new branch 'experiment_1' 

# Here we are going to delete master. Should be safe, since experiment_1 
# was created from this point on the previous command 

$ git branch -d master 
Deleted branch master (was 72ea01d). 

$ git checkout original_idea 
Switched to branch 'original_idea' 

# Now that we checked out the branch HEAD is pointing to, we can recreate master 

$ git checkout -b master 
Switched to a new branch 'master' 
+0

क्या मैं आपको एक और मामले को कवर करने के लिए कह सकता हूं? वर्तमान में 'प्रयोग_1 नाम का नाम बदलकर 'मास्टर' नाम की शाखा को बनाए रखते हुए 'मास्टर' को 'HEAD' पर ले जाएं। दूसरे शब्दों में, संरचना बिल्कुल बदलती नहीं है, लेबल चलते हैं। धन्यवाद! –

+0

आपके आरेख में कौन सा प्रतिबद्ध है आप * मास्टर * की नोक बनना चाहते हैं? –

+0

'72ea01d', जहां अभी' मास्टर' है, को 'प्रयोग_1' नाम दिया जाएगा। फिर 'मास्टर' उस स्थान पर चलेगा जहां 'HEAD' अभी है,' 971f835'। धन्यवाद! मैं कुछ ऑनलाइन ट्यूटोरियल के माध्यम से इसे बेहतर समझने पर काम कर रहा हूं। –

26

यदि git branch दिखाता है कि आपकी वर्तमान शाखा original_idea है, तो यह detached HEAD situation नहीं होगा।

लेकिन किसी भी मामले में, आप अपने गुरु को प्रतिबिंबित करने के लिए अपने "वर्तमान प्रतिबद्ध" (जो what HEAD means in Git है) चाहते हैं:

git branch -f master HEAD 
git checkout master 

आप "How to I “move” my commits from “no branch” to an actual branch?" में अन्य विकल्प मिलेगा।

इससे समस्या यह है कि यह वर्तमान में गायब होने वाली पूरी शाखा गायब हो जाती है।

फिर तुम सब करने की जरूरत है: :

  • सुनिश्चित करें कि सिर (अपने स्कीमा पर की तरह original_idea) एक शाखा द्वारा संदर्भित है
  • मास्टर के शीर्ष पर है कि शाखा rebase कर

    इसका मतलब होगा:

    git checkout original_idea 
    git rebase master 
    git checkout master 
    git merge original_idea 
    
+0

इस समस्या में यह है कि यह वर्तमान में 'मास्टर' गायब होने वाली पूरी शाखा गायब हो जाती है। क्या मैं कुछ भूल रहा हूँ? –

+0

@ मार्टिन के मैंने जवाब संपादित किया है। – VonC

+0

original_idea यहां क्या दर्शाता है? क्या यह सिर या मूल/मास्टर – prasanthMurugan

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