2012-01-04 12 views
6

zrobić to:Dlaczego ta seria poleceń git-svn powoduje odłączenie HEAD?

$ git svn clone http://monsterdebugger.googlecode.com/svn/ -s --prefix=svn/ monsterdebugger 
$ cd monsterdebugger 
$ git branch -a 
* master 
    remotes/svn/trunk 
$ git co remotes/svn/trunk 
Note: checking out 'remotes/svn/trunk'. 

You are in 'detached HEAD' state. <And so on...> 

Chyba nie jestem w pełni zrozumieć, co się dzieje pod maską tutaj. Czy pilniki/svn/trunk nie powinny być oddziałem śledzącym przeciwko repozytorium svn? Dlaczego skończyłem z odłączoną głową?

+0

Czy to nie "master" to twoja gałąź śledząca? Dlaczego chcesz sprawdzić zdalny oddział? W każdym razie myślę, że twoje pytanie jest duplikatem tego: http://stackoverflow.com/questions/3965676/why-did-git-detach-my-head. W zasadzie za każdym razem, gdy sprawdzasz oddział, który nie jest "twój" (jak zdalny oddział), otrzymujesz odłączony HEAD. –

+0

* Czy * kontroluje moją gałąź śledzenia? To fascynujące pytanie! Nie jest to PYTANIE dwojakie pytanie, ponieważ dotyczy ono git-svn, chociaż prawdopodobnie nie robi to tak dużej różnicy, jak mi się wydaje. –

+0

tak, prawdopodobnie jest. Sprawdź 'master' i wykonaj' git svn dcommit --dry-run' i zobacz, co ci mówi. –

Odpowiedz

8

To dlatego, że jest to gałąź zdalna. Musisz utworzyć dla niego lokalny oddział z czymś takim jak:

git checkout -b my-trunk remotes/svn/trunk 
+0

lub '-B' nawet, jeśli mój bagażnik już istnieje? –