Git svn का उपयोग करके चेकआउट दूरस्थ शाखा


188

मैंने git svn का उपयोग करके एक svn रिपॉजिटरी की जाँच की है। अब मुझे शाखाओं में से एक की जांच करने और इसे ट्रैक करने की आवश्यकता है। इसे करने का सबसे अच्छा तरीका कौन सा है?

जवाबों:


355

मानक तोड़फोड़ लेआउट

इसके साथ एक git क्लोन बनाएं जिसमें आपकी सबवर्सन ट्रंक, टैग्स और ब्रांच शामिल हों

git svn क्लोन http://svn.example.com/project -T ट्रंक -b शाखाओं -t टैग

--stdlayoutविकल्प के लिए एक अच्छा शॉर्टकट अपने सववर्सन रिपॉजिटरी ठेठ संरचना का उपयोग करता है, तो यह है:

git svn क्लोन क्लोन http://svn.example.com/project --stdlayout

अपने गिट रिपॉजिटरी को अनदेखा करें सब कुछ तोड़फोड़ रेपो करता है:

git svn शो-इग्नोर >> .it / जानकारी / बहिष्कृत

अब आप सभी सबवर्सन शाखाओं को जीआईटी साइड में देख सकते हैं:

गिट शाखा -r

कहें कि तोड़फोड़ में शाखा का नाम है waldo। गिट की तरफ, आप दौड़ेंगे

git चेकआउट -b वाल्डो- svn रीमोट्स / वाल्डो

-Svn प्रत्यय प्रपत्र की चेतावनियों से बचने के लिए है

चेतावनी: refname 'waldo' अस्पष्ट है।

गिट शाखा को अद्यतन करने के लिए waldo-svn, रन करें

git चेकआउट Waldo-svn
git svn rebase

ट्रंक-ओनली चेकआउट से

ट्रंक-ओनली क्लोन में एक सबवर्सन शाखा जोड़ने के लिए, अपने गिट रिपॉजिटरी .git/configको समाहित करने के लिए संशोधित करें

[svn- रिमोट "svn-mybranch"]
        url = http://svn.example.com/project/branches/mybranch
        fetch =: refs / remotes / mybranch

आपको दौड़ने की आदत विकसित करने की आवश्यकता होगी

git svn fetch --fetch-all

क्या git svnअलग सोच है के सभी अद्यतन करने के लिए । इस बिंदु पर, आप ऊपर के रूप में शाखाएँ बना और ट्रैक कर सकते हैं। उदाहरण के लिए, git ब्रांच बनाने के लिए जो mybranch से मेल खाती है, चलाएं

git checkout -b mybranch-svn remotes / mybranch

जिन शाखाओं से आप इरादा करना चाहते हैं git svn dcommit, उनके इतिहास को रैखिक रखें!


अग्रिम जानकारी

आपको संबंधित प्रश्न का उत्तर पढ़ने में भी रुचि हो सकती है ।


यह मेरे लिए काम नहीं करता है, जैसा कि मैंने git svn क्लोन का उपयोग करके ट्रंक की जांच की है .. मैंने शाखाओं की जाँच करने के लिए सेट नहीं किया है ... मुझे लगता है कि मुझे सबसे पहले इसकी आवश्यकता है।
मार्कोवुकानोविक जूल

तथ्य यह है कि मैंने git svn clone svn.example.com/project/trunk का उपयोग किया है और अब मुझे नहीं पता कि मैं अपने वर्तमान रेपो को
खोए

20
मैं आपके svn रीमोट के लिए एक उपसर्ग प्रदान करने का सुझाव दूंगा। ( --prefix=svn/जब कर रहे हों git-svn initया जोड़ें git-svn clone) इससे आपकी स्थानीय शाखाओं पर एक प्रत्यय जोड़ने की आवश्यकता समाप्त हो जाएगी।
जसनकरन्स

यदि आपके पास कई शाखाएँ हैं, तो एक दूसरे ब्रांच की देखभाल करने से पहले "git चेकआउट मास्टर" करना न भूलें
Eildosa

यदि show-ignoreत्रुटियां समाप्त होती हैं, तो कोशिश करेंgit svn show-ignore -i trunk
एंटी हापाला
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.