2008-12-09 12 views
5

मेरे पास एक स्थानीय गिट भंडार है जो git svn के माध्यम से एक दूरस्थ एसवीएन भंडार ट्रैक करता है। मैंने स्थानीय गिट भंडार में कुछ बदलाव किए हैं और किए हैं, लेकिन अब मैं एक शाखा बनाना चाहता हूं जो एसवीएन हेड को प्रतिबिंबित करता है ताकि कोड में कुछ बदलाव किए जा सकें क्योंकि यह एसवीएन में है, क्योंकि मैं प्रचार नहीं करना चाहता अभी तक एसवीएन को मेरे गिट मास्टर में बदलाव। मैं इस बारे में कैसे जा सकते हैं?मैं एक गिट-एसवीएन शाखा को एसवीएन हेड में कैसे बदलूं?

तत्काल अनुवर्ती: मुझे एसवीएन हेड में परिवर्तन करने और प्रतिबद्ध करने की आवश्यकता होगी, फिर उन्हें अपने गिट मास्टर में वापस विलय करें। यह कैसे करना है? क्या मैं git merge मास्टर में 'svn-edits' शाखा करता हूं, या क्या मैं git svn rebase करता हूं?

+0

गंभीरता से? आप इसे गिट और svn के साथ कर सकते हैं !? जंगली !! – Kieveli

+1

हाँ, गिट-एसवीएन नामक एक छोटा प्रोग्राम है (अधिक जानकारी के लिए मैन गिट-एसवीएन देखें) जो गिट और एसवीएन को एकसाथ प्लग करता है (गिट स्थानीय भंडार के लिए रिमोट रिपोजिटरी बन रहा है)। – Loki

उत्तर

5

मुझे लगता है कि जिस शाखा पर आप काम कर रहे हैं वह trunk है (मैं इसे old-trunk कहूंगा)। सीधे शब्दों में से वहाँ

git checkout -b real-trunk remotes/trunk 

एक नई शाखा का सृजन अब real-trunk में अपने परिवर्तन करें और वहाँ से करते हैं। इसके बाद, बस अपनी पुरानी शाखा को नए पर रीबेस करें।

git svn dcommit 
git checkout old-trunk 
git rebase real-trunk 

अब आपके पहले के बदलाव आपके द्वारा किए गए हालिया परिवर्तनों पर आधारित हैं।