2012-05-24 13 views
5

मैं git-svn का उपयोग कर रहा हूं और मैं नवीनतम एसवीएन हेड में अपडेट करना चाहता हूं।गिट-एसवीएन में नवीनतम एसवीएन हेड कैसे प्राप्त करें?

जब मैं git pull टाइप यह कहते हैं:

fatal: No remote repository specified. Please, specify either a URL or a 
remote name from which new revisions should be fetched. 

मैं here पढ़ा है कि मैं कुछ ऐसा करना चाहिए:

git checkout -b real-trunk remotes/trunk 

लेकिन मैं आदेश को नहीं समझते। remote-trunk क्या है?

fatal: git checkout: updating paths is incompatible with switching branches. 
Did you intend to checkout 'remotes/trunk' which can not be resolved as commit? 

यहाँ है मेरी .git/config: किसी भी मामले में, git त्रुटि देता

$ cat .git/config 
[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = false 
     logallrefupdates = true 
[svn-remote "svn"] 
     url = http://name.xyz.com/svn/trunk/project 
     fetch = :refs/remotes/git-svn 

इसके अलावा, किसी को भी मुझे बताओ कि सभी परिवर्तनों कि मैं अपने Git चेकआउट में की गई वापस लौटने के लिए कर सकते हैं? मैं ताजा एसवीएन हेड संस्करण पर वापस आना चाहता हूं।

उत्तर

5

"Git पुल" के बजाय अद्यतन करने के लिए:

git svn rebase 

मैं आप पहले से ही अनुमान है refs/सिर/मास्टर अपने refs/रिमोट/Git-SVN इसी है, तो इसके साथ काम, आप कुछ ही "वास्तविक जरूरत -सूँ ढ"।

"गिट चेकआउट" कोई भी परिवर्तन नहीं करता है, यह सिर्फ आपकी वर्तमान शाखा को बदलता है। आप अपनी वर्तमान शाखा को वापस बदल सकते हैं लेकिन "गिट चेकआउट your_previous_commit_or_branch" का उपयोग कर सकते हैं।

"गिट चेकआउट -बी ब्रैनchnम" एक नई शाखा बनाता है। शाखा का उपयोग करने के लिए "गिट शाखा-डी ब्रंचनिक" का उपयोग करें।

+0

धन्यवाद! अब एक और समस्या: मेरे पास कई स्थानीय संशोधन हैं जिन्हें मैं पहले वापस करना चाहता हूं। क्योंकि अगर मैं 'git svn rebase' करता हूं तो यह कहता है: ' file.cpp: अपडेट की आवश्यकता है 'अपडेट-इंडेक्स - रीफ्रेश: कमांड लौटा त्रुटि: 1' – Frank

+1

"गिट svn rebase से पहले आपके पास हमेशा एक साफ काम करने वाला पेड़ होना चाहिए ", यह डिजाइन द्वारा है। आम तौर पर मैं अपने स्थानीय परिवर्तन करता हूं और केवल नए बदलाव प्राप्त करता हूं। उसके बाद मैं अपनी स्थानीय प्रतिबद्धता में संशोधन कर सकता हूं ("गिट प्रतिबद्ध --मेन्ड" द्वारा)। कुछ लोग इसके लिए "गिट स्टैश" का उपयोग करते हैं। –

+0

धन्यवाद! वह काम किया। – Frank

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