2011-11-25 10 views
5

मैं पहले के एक करने के लिए एक चेकआउट प्रतिबद्ध था:"नहीं वर्तमान में किसी भी शाखा पर" करने के बाद एक प्रतिबद्ध

git checkout 12345 

फिर वापस पिछले करने के लिए प्रतिबद्ध:

git checkout 56789 

और फिर करने के लिए जारी रखा और मैं 'एम:

वर्तमान में किसी भी शाखा पर नहीं है।

शायद, मैंने किया जाना चाहिए है:

git checkout master 

पहले चेकआउट करने के बाद, बजाय एक आईडी के लिए प्रतिबद्ध की ओर इशारा करते हैं।

फिर भी, किसी भी विचार को मास्टर शाखा में अपना नवीनतम काम कैसे प्राप्त करें (जो कुछ पीछे है)?

धन्यवाद

उत्तर

10

जब आप git checkout 12345 करते हैं तो आप कोई शाखा स्थिति नहीं होंगे। ऐसा मत करो। यह काम करने के बजाय निरीक्षण निरीक्षण के लिए है।

आप गुरु पर हैं और, के लिए प्रतिबद्ध है कि तुम चाहते थे करने के लिए अपने गुरु को रीसेट करने के git reset 12345 का उपयोग (या --hard आपूर्ति) आप शाखा करना चाहता था, तो git checkout -b <name> <sha1> का उपयोग उस बिंदु पर एक शाखा बना सकते हैं और वहाँ काम शुरू करना चाहते हैं।

इसी प्रकार, जबकि वापस आ रहा है, तो आप की तरह उल्लेख किया है, आप git checkout master

करना चाहिए था अब जब कि तुम 56789 से अधिक प्रतिबद्ध है, को नोट 56789 से अधिक प्रतिबद्ध है, और फिर चेकआउट मास्टर, और कार्य करें:

git reset <commit_over_56789> 
+0

मुझे आपका उत्तर अधिक जानकारीपूर्ण लगता है। धन्यवाद :-) –

+0

+1। 'गिट चेकआउट मास्टर' की मुझे ज़रूरत थी। –

4

अगर मैं तुम्हें सही ढंग से समझ, अपने गुरु शाखा अपने सबसे हाल ही प्रतिबद्ध (56789) के पीछे है, और आप इसे उस को इंगित करना चाहते हैं।

अगर ऐसी बात, क्या कर रही है:

git branch -f master 56789 

कि प्रतिबद्ध करने के लिए बात करने के लिए मास्टर शाखा रीसेट कर देगा। उसके बाद git checkout master, और आपको जाने के लिए अच्छा होना चाहिए।

+0

एक कामकाजी प्रतिलिपि साफ है, यह मानते हुए कि कोई भी 'गिट चेकआउट मास्टर और गिट रिबेस 5678 9' भी कर सकता है। – Romain

+0

बिल्कुल सही। बहुत बहुत धन्यवाद, मैट और रोमेन! –

+0

बहुत बहुत धन्यवाद, मेरे लिए काम किया। मुझे व्यक्तिगत रूप से यह उत्तर दूसरे की तुलना में अधिक उपयोगी लगता है। –

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

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