2010-05-14 15 views
17

इसलिए मैं स्रोत नियंत्रण विशेषज्ञ का अधिक नहीं हूं, मैंने अतीत में परियोजनाओं के लिए सबवर्जन का उपयोग किया है। मुझे एक विशेष परियोजना के लिए गिट का उपयोग करना है (क्लाइंट ने गिट रेपो आपूर्ति की है)।मैं सबवर्सन से गिट तक ट्रंक/शाखा अवधारणाओं का अनुवाद कैसे कर सकता हूं?

मेरा वर्कफ़्लो ऐसा है कि मैं दो अलग-अलग कंप्यूटरों से फ़ाइलों पर काम कर रहा हूं, और अक्सर मुझे उन परिवर्तनों में जांच करने की आवश्यकता होती है जो स्थान से स्थानांतरित होने पर अस्थिर होते हैं, इसलिए मैं अपना काम जारी रख सकता हूं। तब क्या होता है जब कहें, क्लाइंट नवीनतम संस्करण प्राप्त करने के लिए जाता है, वे अस्थिर कोड भी डाउनलोड करेंगे।

एसवीएन में, आप इसे एक ट्रंक बनाकर और कार्यरत शाखाओं का उपयोग करके संबोधित कर सकते हैं, या ट्रंक का उपयोग वर्किंग वर्जन के रूप में कर सकते हैं और स्थिर शाखाएं बना सकते हैं।

गिट में समकक्ष अवधारणा क्या है, और क्या गिटहब के माध्यम से ऐसा करने का एक आसान तरीका है? A Successful Git Branching Model

SVN के विपरीत, Git का विकेंद्रीकरण किया गया है:

उत्तर

17

ऐसा करने के कई तरीके हैं। यदि आपको कंप्यूटर से कंप्यूटर पर जाना है, तो आप एक अलग भंडार में स्विच कर रहे होंगे, इसका मतलब है कि आप रिमोट रेपो में अपने परिवर्तनों को दबाएंगे। यह ठीक है, लेकिन इसका मतलब यह भी है कि आप

एक बहुत ही सरल उदाहरण केवल एक निजी शाखा पर अपना अस्थिर काम करना है, और इसे कुछ स्पष्ट नाम देना है, उदा। unstable-development। यहां स्क्रैच से ऐसा करने का तरीका बताया गया है। सबसे पहले, आइए अपने क्लाइंट की साइट से एक नया रेपो बनाएं, जिसे मैं "गुप्त सॉस" कहूंगा।

$ git clone git://example.com/repositories/secret-sauce.git 

आप अभी भी master शाखा, डिफ़ॉल्ट पर हैं। आइए एक नई शाखा बनाएं ताकि आप master पर वहां सामान बना सकें।

$ git branch unstable 
$ git checkout unstable 
Switched to branch 'unstable' 

ठीक है। अब हम कुछ अस्थिर कोड जोड़ सकते हैं:

$ touch kablammo.txt 
$ git add * 
$ git commit -m "Added unstable code." 
[master (root-commit) 9428aef] Initial checkin. 
0 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 kablammo.txt 

अभी, unstable केवल अपने पक्ष पर मौजूद है। ध्यान दें कि जब हमने क्लोन किया, तो हमें origin नामक रिमोट रिपोजिटरी मिली, जिसमें master शाखा है। जब आपके स्थानीय भंडार को रिमोट रिपोजिटरी की शाखाओं के बारे में पता होता है, तो हम उसे "ट्रैकिंग शाखा" कहते हैं। आप git branch -r साथ अपने सभी दूरस्थ ट्रैकिंग शाखाओं देख सकते हैं:

$ git branch -r 
    origin/HEAD -> origin/master 
    origin/master 

ठीक है। आइए अपने बदलावों को वापस धक्का दें!

$ git push origin unstable 

यह है कि - हमारे परिवर्तन अब दूरस्थ रेपो पर unstable शाखा में रहते हैं। अगर हम देखना चाहते हैं कि लोग master शाखा पर फिर से क्या कर रहे हैं, तो हम git checkout master के साथ फिर से स्विच कर सकते हैं।

+0

"ट्यूटोरियल" की एक्स संख्या से बेहतर है जो एक साधारण प्रक्रिया लेता है और इसे जटिल बनाता है। – Thufir

9

मैं इस एक मूल्यवान संसाधन हैं। आपको अपने क्लाइंट के भंडार में अस्थिर कोड को कभी भी धक्का नहीं देना चाहिए। आप अस्थिर कोड को अपने दूसरे कंप्यूटर पर पहले से खींच सकते हैं।

यह कहकर कि, गिट महान शाखाओं को संभालती है और जो भी पद्धति आप समाप्त कर रहे हैं उसका एक अभिन्न अंग होना चाहिए।

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