2016-01-11 3 views
7

मुझे पता है कि मास्टर के साथ शाखा को कैसे सिंक करना है। मैं इस ऐसा:बिटबकेट विफल होने पर मैन्युअल रूप से सिंक शाखा

git checkout target-branch 
git merge master 
# resolve conflicts if any and commit 
git push 

मैं इसे यह पता लगाने की क्या BitBucket मुझे पता चलता है जब स्वचालित सिंक क्योंकि संघर्ष के विफल रही है कोशिश कर रहा हूँ। BitBucket मुझे पता चलता है:

git checkout 326907c583f7 
# Note: This will create a detached head! 
git merge remotes/origin/master 

क्या अलग सिर बनाने के लिए बिंदु है? मुझे समझ में नहीं आता है। क्या यह बिटबकेट पक्ष पर बग है या मुझे कुछ याद आ रहा है?

+0

संभावित गलती [गिट अलग सिर को ठीक करें?] (Http://stackoverflow.com/questions/10228760/fix-a-git-detached-head) – Stony

+2

@ सोंटी, मुझे मदद की ज़रूरत नहीं है अलग सिर मैं इसे समझने की कोशिश कर रहा हूं कि बिटबकेट ने मास्टर के साथ शाखा को सिंक करने के लिए मुझे एक अलग सिर बनाने का सुझाव दिया है। यह स्पष्ट रूप से मुझे समझ में नहीं आता है। – stz184

+0

यह प्रतिबद्धता आपके शाखा के सिर से कैसे संबंधित है? – ams

उत्तर

0

ठीक है, मैं एक के लिए सोचता हूं कि "एक अलग सिर बनाने" के बारे में संदेश थोड़ा भ्रामक है क्योंकि आप वास्तव में इसे नहीं बना सकते हैं। क्या होता है कि गिट चेकआउट शाखाएं या संशोधनों (चलो चीजों को और अधिक जटिल बनाने के लिए टैग के बारे में भूल जाते हैं)। यदि आप स्थानीय शाखा चेकआउट करना चुनते हैं, तो गिट जानता है कि जब आप प्रतिबद्ध करते हैं तो उसे नया संशोधन करना होगा और फिर स्थानीय शाखा को इस संशोधन के लिए इंगित करना होगा जो अभी बनाया गया था। लेकिन यदि आप अपने आईडी द्वारा "संशोधन" की जांच करना चुनते हैं, जैसा आपने पोस्ट किया है उदाहरण में प्रदान किया गया है (या उस मामले के लिए एक दूरस्थ शाखा, यह आपके स्थानीय भंडार के दृष्टिकोण से एक ही स्थिति है), तो वहां कोई नहीं है स्थानीय शाखा जो संशोधन को इंगित कर रही है (यही कारण है कि इसे अलग सिर कहा जाता है)। गिट के लिए यह कोई फर्क नहीं पड़ता। यह सिर्फ एक संशोधन है जिसे आपने स्थानीय शाखा, रिमोट शाखा या संशोधन के लिए चेकआउट करने के लिए कहा था। लेकिन आपके लिए यह काफी अंतर बनाता है क्योंकि यदि आप अलग-अलग HEAD पर काम कर रहे हैं, तो यदि आप प्रतिबद्ध करना चुनते हैं, तो गिट में स्थानीय शाखा नहीं होगी। यह केवल संशोधन करेगा, इसे सिर बिंदु बनायेगा और यही वह है। यदि आप इस पल में, उदाहरण के लिए, किसी दूसरी शाखा या संशोधन के लिए चेक आउट किया गया था और आपके पास एक अलग शाखा राज्य में अभी संशोधन किए गए संशोधन की ओर इशारा करते हुए कोई स्थानीय शाखा नहीं थी, तो आपने संशोधन खो दिया (अच्छा ... आप हमेशा उपयोग कर सकते हैं गिट रीफ्लॉग इसे वापस पाने के लिए, लेकिन आपको बिंदु मिल गया है, है ना?)। यही कारण है कि Git में चेतावनी देता है जब आप एक अलग HEAD पर काम शुरू है:

$ git checkout HEAD~2 
Note: checking out 'HEAD~2'. 

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 performing another checkout. 

If you want to create a new branch to retain commits you create, you may 
do so (now or later) by using -b with the checkout command again. Example: 

    git checkout -b <new-branch-name> 

सूचना है कि यह कैसे आपको बताता है कि आप Git चेकआउट -b नई शाखा-नाम चलाकर किसी भी बिंदु पर एक स्थानीय शाखा बना सकते हैं

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