2011-09-27 11 views
5

स्थिति

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

  • स्थिर: /var/www/afod/afod
  • विकास: /var/www/afod_dev/afod

अब मैं स्थिर संस्करण में है और मैं पहले इस्तेमाल कभी नहीं किया है के रूप में देव-संस्करण से परिवर्तन सिंक करने के लिए Git का उपयोग करना चाहते VC- सिस्टम मुझे ऐसा नहीं लगता है कि यह कैसे करें।

मैंने क्या किया अब तक

मैं /var/www/afod/afod में एक Git भंडार बनाया है और के माध्यम से देव निर्देशिका में क्लोन:

cd /var/www/afod_dev/afod 
git clone /var/www/afod/afod 

अब मुझे मिल गया है 2 खजाने जो मैं सिंक्रनाइज़ रखना चाहता हूँ स्थिर-संस्करण पक्ष पर गिट खींचने का उपयोग करना।

समस्या (रों)

मैं पहले से ही 2 शाखाओं, वेब और देव मिल गया है। लेकिन जैसा कि यह दोनों शाखाओं से स्थिर संस्करण syncs में गिट खींचता है। लेकिन मैं केवल स्थिर संस्करण में परिवर्तनों को सिंक करना चाहता हूं, कि मैं पहले से ही dev-version में वेब-शाखा में विलय कर चुका हूं।

कुल भ्रम

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

बिली चंद्रमा

खैर से पहले उत्तर के संबंध में, स्थिर और देव एक अलग अपाचे VServer में एक अलग डोमेन के तहत होस्ट कर रहे हैं। यह किसी देव-शाखा पर काम करने का कोई अर्थ नहीं उठाएगा जो निर्देशिका में है जब लोग साइट ब्राउज़ करते हैं।

तो मेरा विचार भंडार क्लोन करना था और फिर इन्हें सिंक करना था।

क्या मुझे यहां कुछ गड़बड़ है? आप इस तरह के विन्यास से कैसे निपटते हैं?

+0

"गिट पुल" जैसा दिखने वाला गिट क्या है, दोनों शाखाओं से स्थिर समन्वयित हो रहा है? – Schwern

+0

स्टैक ओवरफ़्लो में आपका स्वागत है, यह एक अच्छा पहला सवाल है; अपने प्रश्न के संपादन के रूप में टिप्पणी डालने के बजाए सीधे उत्तर देने के लिए बेहतर है (जैसा आपने बिली के उत्तर के लिए किया था)। – CharlesB

उत्तर

4

शाखाओं

मुझे लगता है कि आप सही रास्ते पर हैं, लेकिन एक शाखा के विचार के साथ एक llittle उलझन:

यहाँ बुनियादी Git पर एक बड़ा ट्यूटोरियल और कैसे एक सरल कार्यप्रवाह काम कर सकते हैं। आप एक शाखा को एक पेड़ पर दो शाखाओं के रूप में कल्पना कर सकते हैं। दोनों में एक ही ट्रंक है, स्रोत, लेकिन सुझाव अलग हैं। अंतर समान कोड आधार के बीच हैं और मामूली या प्रमुख हो सकते हैं।जब आप कमांड git checkout <branch_name> चलाते हैं तो आप गिट को बता रहे हैं कि आप सक्रिय होने के लिए पेड़ की विभिन्न युक्तियां चाहते हैं, कार्यशील निर्देशिका में कॉपी की गई है।

आपके मामले में, एक शाखा में विकास कोड है, और दूसरे का आपका स्थिर कोड है। dev शाखा से web शाखा में कोड प्राप्त करने के लिए, आप git merge <branch_to_pull_in> का उपयोग करते हैं, यह उन दो शाखाओं की युक्तियों को जोड़ती है ताकि उनकी सामग्री समान हो। सामान्य रूप से शाखाओं के बारे में अधिक जानकारी के लिए, Here एक सामान्य गैर गिट पेज है।

संभव समाधान

नीचे एक समाधान है कि आप के लिए काम कर सकता है। अन्य संभावित काम प्रवाह भी हैं, लेकिन यह सबसे सरल लोगों में से एक है।

/var/www/afod/afod में अपने विकास भंडार को क्लोन करें। /var/www/afod/afod से git checkout web और अपने devfolder से, यह सुनिश्चित करें कि आप dev शाखा पर हैं। git branch में इस * dev जैसी लाइन होनी चाहिए।

अब आपके पास अलग-अलग उपफोल्डरों में एक ही भंडार की दो अलग-अलग शाखाएं हैं। जैसा कि आपके पास है, देव में अपना काम करो। एक बार जब आपको लगता है कि यह स्थिर है, तो अपने dev फ़ोल्डर के भीतर git checkout web चलाएं। से, git merge dev। यह उन परिवर्तनों को आपके web शाखा में विलय करेगा। अब /var/www/afod/afod के भीतर से git pull चलाएं। यह आपके chnages उत्पादन सर्वर में खींच जाएगा। dev और वेब दोनों को खींचा जाएगा, लेकिन केवल आपकी कार्य निर्देशिका में होगा।

जब आप देव शाखा में फिर से काम करना चाहते हैं, तो देव फ़ोल्डर में से git checkout dev चलाएं।

0

मुझे लगता है कि स्थिर और विकास शाखाएं होनी चाहिए, अलग-अलग भंडार नहीं। http://www.ralfebert.de/tutorials/git/

+0

ओपी एक ही भंडार के दो अलग-अलग क्लोन रखना चाहता है। – CharlesB

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