2012-05-24 7 views
5

Sto utilizzando git-svn e desidero aggiornare l'ultimo SVN HEAD.Come ottenere l'ultimo SVN HEAD in git-svn?

Quando digito git pull che dice:

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

ho letto here che avrei dovuto fare qualcosa di simile:

git checkout -b real-trunk remotes/trunk 

Ma non capisco il comando. Cos'è remote-trunk? In ogni caso, git dà un errore:

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

Ecco il mio .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 

Inoltre, qualcuno può dirmi come ripristinare tutte le modifiche che ho fatto nella mia git checkout? Voglio tornare alla versione SVN HEAD fresca.

risposta

5

Per aggiornare invece di "git pull":

git svn rebase 

ho indovinare già ho refs/teste/master corrispondente tuo refs/telecomandi/git-svn, in modo da lavorare con esso, non avete bisogno di "reale -tronco".

"git checkout" non esegue alcuna modifica, modifica solo il ramo corrente. Puoi cambiare il tuo attuale ramo ma usando "git checkout your_previous_commit_or_branch".

"git checkout -b branchname" crea un nuovo ramo. Per eliminare un ramo usa "git branch -D branchname".

+0

Grazie! Ora un altro problema: ho diverse modifiche locali che vorrei ripristinare prima. Perché se faccio 'git svn rebase' dice: ' file.cpp: ha bisogno di aggiornamento' 'update-index --refresh: comando restituito errore: 1' – Frank

+1

Devi sempre avere un albero di lavoro pulito prima di" git svn rebase ", è di progettazione. Di solito, commetto le mie modifiche locali e solo in questo modo ottengo nuove modifiche. Successivamente, posso modificare il mio commit locale (con "git commit --amend"). Alcune persone usano "git stash" per quello. –

+0

Grazie! Ha funzionato. – Frank