2012-05-24 66 views
5

我正在使用git-svn,我想更新到最新的SVN HEAD。如何在git-svn中獲得最新的SVN HEAD?

當我鍵入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?在任何情況下,git給出了一個錯誤:

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

$ 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結賬所做的所有更改?我想回到新鮮的SVN HEAD版本。

回答

5

要更新,而不是「混帳拉」:

git svn rebase 

我想你已經裁判/頭/主相應的參/遙控器/混帳SVN,所以使用它,你需要沒有「真正的-樹幹」。

「git checkout」不會執行任何更改,它只會更改您當前的分支。您可以更改當前分支,但使用「git checkout your_previous_commit_or_branch」。

「git checkout -b branchname」創建一個新分支。要刪除分支,請使用「git branch -D branchname」。

+0

謝謝!現在還有一個問題:我有幾個本地修改,我想先恢復。因爲如果我做'git svn rebase',它會顯示: 'file.cpp:needs update' 'update-index --refresh:command returned error:1' – Frank

+1

在「git svn rebase」之前,您總是應該有一個乾淨的工作樹「,這是設計。通常我會提交我的本地更改,然後才能獲得新的更改。之後,我可以修改我的本地提交(通過「git commit --amend」)。有些人使用「git stash」。 –

+0

謝謝!這工作。 – Frank