2012-05-24 17 views
5

Używam git-svn i chcę zaktualizować najnowszą wersję SVN HEAD.Jak uzyskać najnowszą wersję SVN HEAD w git-svn?

Po wpisaniu git pull mówi:

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

czytam here że należy zrobić coś takiego:

git checkout -b real-trunk remotes/trunk 

Ale ja nie rozumiem polecenia. Co to jest remote-trunk? W każdym razie, git daje błąd:

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

Oto moja .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 

Ponadto, może ktoś mi powiedzieć jak przywrócić wszystkie zmiany, które zrobiłem w moim git kasie? Chcę wrócić do nowej wersji SVN HEAD.

Odpowiedz

5

Do aktualizacji zamiast "git pull":

git svn rebase 

Chyba masz już bibl/heads/master odpowiada swoją pozycje literatury/pilotów zdalnego sterowania/git-svn, więc z nim pracować, trzeba nie „prawdziwy -bagażnik samochodowy".

"git checkout" nie wykonuje żadnych zmian, tylko zmienia aktualną gałąź. Możesz zmienić swoją obecną gałąź, ale używając "git checkout your_previous_commit_or_branch".

"git checkout -b nazwa_gałęzi" tworzy nowy oddział. Aby usunąć gałąź, użyj "git branch -D nazwa_grupy".

+0

Dzięki! Teraz jeszcze jeden problem: mam kilka lokalnych modyfikacji, które chciałbym najpierw zmienić. Ponieważ jeśli zrobię 'git svn rebase', to znaczy: ' file.cpp: potrzebuje aktualizacji ' ' update-index --refresh: command zwrócił błąd: 1' – Frank

+1

Zawsze powinieneś mieć czyste działające drzewo przed "git svn rebase" ", to jest zgodne z projektem. Zazwyczaj zatwierdzam lokalne zmiany i dopiero wtedy otrzymuję nowe zmiany. Potem mogę zmienić mój lokalny commit (przez "git commit --amend"). Niektórzy używają do tego celu "git stash". –

+0

Dzięki! To się udało. – Frank

Powiązane problemy