2012-01-04 65 views
6

我這樣做:爲什麼這一系列的git-svn命令會導致分離的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...> 

我想我不能完全理解這是怎麼回事引擎蓋下。不應該remotes/svn/trunk是跟蹤svn回購的分支嗎?我爲什麼最終得到一個獨立的頭?

+0

是不是'master'跟蹤分支?你爲什麼想檢查遠程分支?無論如何,我認爲你的問題是這個問題的重複:http://stackoverflow.com/questions/3965676/why-did-git-detach-my-head。實質上,任何時候你簽出一個不是「你的」的分支(如遠程分支),你會得到一個分離的HEAD。 – 2012-01-04 22:58:10

+0

*是*掌握我的跟蹤分支?這是一個令人着迷的問題!這不是一個愚蠢的問題,因爲它具體是關於git-svn,儘管這可能不會像我擔心的那樣造成太大的差別。 – 2012-01-06 04:15:11

+0

是的,它可能是。查看'master'並執行'git svn dcommit --dry-run'並查看它告訴你什麼。如果我的中繼線已經存在,甚至可以使用 – 2012-01-06 18:56:19

回答

8

這是因爲它是一個遠程分支。你需要爲它創建一個本地分支,類似於:

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

或'-B'? – 2015-03-17 09:12:29

相關問題