2012-06-21 16 views
16

दूरस्थ git fetch का उपयोग करने से प्राप्त करने में कठिनाई के बाद, हमगिट मर्ज मूल/मास्टर क्या करता है?

git merge origin/master 

की तरह कुछ मुझे पता है कि अगर इस आदेश को भी एक ही समय में git commit करता चाहते हैं उपयोग करने की आवश्यकता? क्या आदेश origin/master महत्वपूर्ण है? क्या मैं master/original लिख सकता हूं?

+0

आपको वास्तव में [पुस्तक] (http://git-scm.com/book/en/Git- ब्रांचिंग- रिमोट- शाखाओं) के माध्यम से स्वयं को काम करना चाहिए। – kostix

उत्तर

8

यह क्या करता है शाखा को आपकी वर्तमान शाखा में मूल/मास्टर के रूप में संदर्भित करता है। आदेश बहुत महत्वपूर्ण है। शब्द मूल का अर्थ है कि जिस स्थान से आपने अपना भंडार क्लोन किया है, यानी भंडार की उत्पत्ति, मास्टर केवल एक शाखा का नाम है, हालांकि मास्टर आमतौर पर मुख्य शाखा के रूप में उपयोग किया जाता है, या ट्रंक शाखा क्योंकि कुछ अन्य सिस्टम इसे कहते हैं।

विलय को आपके विकास की स्थिति के आधार पर प्रतिबद्धता करने की आवश्यकता हो सकती है। यदि आपका इतिहास उत्पत्ति से अलग नहीं हुआ है, तो यह फास्ट-फॉरवर्ड कहलाता है --- जो कुछ करने की आवश्यकता है, वह आपके ऊपर के नए इतिहास को डाल सकता है। यदि आपका विकास उत्पत्ति से अलग हो गया है तो अगर मर्ज को बिना किसी विवाद के किया जा सकता है तो विलय किया जाता है और मर्ज और दो माता-पिता को निर्दिष्ट करने के लिए HEAD पर एक नई प्रतिबद्धता दर्ज की जाती है।

इसके अलावा, अगर विलय की वजह से विलय नहीं किया जा सकता है, तो आपकी कार्यशील प्रतिलिपि को इस तथ्य को प्रतिबिंबित करने के लिए अद्यतन किया जाता है कि संघर्ष होते हैं, फिर जब आप उन्हें ठीक करते हैं, तो आप मैन्युअल रूप से प्रतिबद्धता को रिकॉर्ड करते हैं।

+0

आपका उत्तर दो स्थानों पर गलत है।पहला: "_ आपकी वर्तमान शाखा को मूल/मास्टर_ के रूप में संदर्भित शाखा के साथ विलय करता है" गलत है, क्योंकि 'मूल/मास्टर' ** ** वर्तमान शाखा में विलय हो गया है। या शायद यह अस्पष्टता है जो मैं इस जगह में देखता हूं, फिर कृपया स्पष्टीकरण दें। दूसरा, 'गिट मर्ज' ** कुछ मामलों में ** प्रदर्शन करता है (उदाहरण के लिए। जब ​​उन्हें स्पष्ट रूप से नहीं किया जाता है और जब मर्ज तेजी से आगे फैशन में किया जा सकता है। – Tadeck

+0

हां यही मेरा मतलब है, मेरे पास है शब्द तय कर दिया। क्या आप कह रहे हैं कि एक फास्ट-फॉरवर्ड वास्तव में एक प्रतिबद्धता के समान है? मैं इस धारणा के तहत था कि एक फास्ट-फॉरवर्ड आपके विकास के नए विकास इतिहास को अलग करने जैसा था। – Jarryd

+0

इसे देखें: http: //www.kernel.org/pub/software/scm/git/docs/git-merge.html#_description - विशेष रूप से यह पंक्ति: "_ (...) 'गिट मर्ज विषय'' विषय 'शाखा' के बाद से 'मास्टर' (...) से 'मास्टर' के शीर्ष पर अपनी वर्तमान प्रतिबद्धता तक अलग हो गई है, और ** दो माता-पिता के नाम और लॉग के नाम के साथ एक नई प्रतिबद्धता में परिणाम रिकॉर्ड करें ** परिवर्तन से वर्णन करने वाले उपयोगकर्ता से संदेश "। मुझे विश्वास है कि यह बहुत स्पष्ट है। यह ** ** प्रतिबद्ध करता है (जब तक कि कुछ संघर्ष नहीं पता चला है और आपको हल करने की आवश्यकता है यह पहले)। – Tadeck

19

git merge origin/master दो चीजों में से एक (या त्रुटि) कर सकता है।

पहले मामले में, यह एक नई प्रतिबद्धता बनाता है जिसमें दो माता-पिता हैं: वर्तमान HEAD, और प्रतिबद्धता origin/master द्वारा इंगित की गई है (जब तक कि आप कुछ मजेदार नहीं कर रहे हैं, यह संभव है (स्थानीय सूचक करने के लिए master नाम की शाखा origin नामक रिमोट पर है, हालांकि यह पूरी तरह से पारंपरिक है)।

दूसरे मामले में, जहां कोई नई प्रतिबद्धता बनाने के बजाय कोई वृक्ष-स्तर विलय आवश्यक नहीं है, तो वर्तमान में चेक-आउट रेफरी को उसी प्रतिबद्धता को इंगित करने के लिए अद्यतन किया जाता है जैसा कि origin/master द्वारा इंगित किया गया है। (इसे कहा जाता है फास्ट-फॉरवर्ड विलय - गिट को या तो आदेश दिया जा सकता है या जब आप कमांड लाइन झंडे के माध्यम से विलय करते हैं तो कभी भी ऐसा नहीं किया जा सकता है)।

यह सीधे git commit पर कॉल नहीं करता है, जो कि उच्च-स्तर (चीनी मिट्टी के बरतन गिट-पार्लान्स में) कमांड उपयोगकर्ताओं के लिए लक्षित है।

कॉलिंग git merge master/original कोशिश करते हैं और करने के लिए master/original का समाधान हो जाएगा एक प्रतिबद्ध है, जो लगभग निश्चित रूप से (फिर से, जब तक आप कुछ जानबूझकर किया है) होगा नहींorigin/master रूप में ही हो। यदि आपके पास रिमोट नाम master है जिसमें original नाम की शाखा है, तो यह एक नई प्रतिबद्धता बनाएगी जिसमें दूसरे माता-पिता के रूप में होगा।

आपको git help rev-parse मिल सकता है ताकि यह समझने में सहायता मिल सके कि गिट रीफ नाम या अन्य नोटेशन को हल करने का प्रयास कैसे करता है।

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