2012-01-04 30 views
6

Tôi làm điều này:Tại sao chuỗi lệnh git-svn này lại tạo ra một HEAD tách rời?

$ 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...> 

Tôi đoán tôi không hoàn toàn hiểu được điều gì đang xảy ra dưới mui xe ở đây. Không nên điều khiển từ xa/svn/trunk là một nhánh theo dõi chống lại repo svn? Tại sao tôi lại kết thúc với một cái đầu tách rời?

+0

Không phải là 'master' chi nhánh theo dõi của bạn? Tại sao bạn muốn kiểm tra các chi nhánh từ xa? Dù sao, tôi nghĩ câu hỏi của bạn trùng lặp với câu hỏi này: http://stackoverflow.com/questions/3965676/why-did-git-detach-my-head. Về bản chất, bất cứ lúc nào bạn kiểm tra một chi nhánh không phải là "của bạn" (giống như một nhánh từ xa), bạn sẽ nhận được một HEAD tách rời. –

+0

* Có * làm chủ chi nhánh theo dõi của tôi không? Đó là một câu hỏi hấp dẫn! Nó không QUITE một câu hỏi dupe bởi vì nó đặc biệt về git-svn, mặc dù điều đó có lẽ không tạo ra nhiều sự khác biệt như tôi đang quan tâm. –

+0

vâng, có thể là vậy. Kiểm tra 'master' và làm' git svn dcommit --dry-run' và xem nó nói gì với bạn. –

Trả lời

8

Đó là vì đó là một nhánh từ xa. Bạn cần phải tạo một chi nhánh địa phương cho nó, với một cái gì đó như:

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

hoặc '-B' ngay cả khi thân cây của tôi đã tồn tại? –

Các vấn đề liên quan