2012-05-24 18 views
5

Ich benutze git-svn und ich möchte auf den neuesten SVN Kopf aktualisieren.Wie bekomme ich den neuesten SVN HEAD in git-svn?

Wenn ich git pull geben Sie es sagt:

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

ich here lesen, dass ich so etwas tun:

git checkout -b real-trunk remotes/trunk 

Aber ich verstehe nicht, den Befehl. Was ist remote-trunk? In jedem Fall gibt git einen Fehler:

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

Hier ist mein .git/config:

$ 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 

Auch kann mir jemand sagen, wie alle Änderungen rückgängig machen, die ich in meiner git Kasse gemacht? Ich möchte wieder in der neuen SVN HEAD Version sein.

Antwort

5

Für anstelle von "git pull" Aktualisierung:

git svn rebase 

ich Sie schon erraten Refs haben/heads/master entsprechend Ihrer refs/remotes/git-svn, so mit ihm arbeiten, brauchen Sie keine „echten -Kofferraum".

"git checkout" führt keine Änderungen durch, es ändert nur Ihren aktuellen Zweig. Sie können Ihre aktuelle Verzweigung zurück ändern, aber mit "git checkout your_previous_commit_or_branch".

"git checkout -b Branchname" erstellt einen neuen Zweig. Um einen Zweig zu löschen, benutze "git branch -D Branchname".

+0

Danke! Jetzt noch ein Problem: Ich habe einige lokale Änderungen, die ich zuerst zurücknehmen möchte. Denn wenn ich "git svn rebase" sage, heißt es: 'file.cpp: needs update' ' update-index --refresh: Befehl zurückgegeben Fehler: 1' – Frank

+1

Sie sollten immer einen sauber funktionierenden Baum haben, bevor "git svn rebase "Es ist von Entwurf. Normalerweise beginne ich meine lokalen Änderungen und bekomme dann nur neue Änderungen. Danach kann ich mein lokales Commit ändern (durch "git commit --amend"). Manche Leute benutzen dafür "Git Stash". –

+0

Danke! Das hat funktioniert. – Frank

Verwandte Themen