2012-02-13 24 views
41

Tôi nhận được lỗi này khi tôi cố gắng thay đổi nhánh.gây tử vong: Hoạt động này phải được chạy trong một cây công việc

Có lẽ tôi sẽ đưa ra một số thông tin về các lệnh tại

/path/to/git/repo/. 

khi lệnh:

git branch 

tôi nhận được sau đầu ra

* V1.5 
    V2.0 
    master 

Và khi tôi cố gắng lệnh

git checkout V2.0 

tôi nhận được sau đầu ra:

fatal: This operation must be run in a work tree 

tập tin cấu hình nội dung:

cat config 
[core] 
     repositoryformatversion = 0 
     filemode = true 
     bare = true 
[remote "origin"] 
     url = /path/to/git/repo/.git 
+1

Có vẻ như bạn có tiền hoàn lại. Các repo trần không có cây làm việc, do đó, 'git checkout' không có ý nghĩa đối với chúng. – svick

Trả lời

35

Bạn kho là trần, tức là nó không có một cây làm việc gắn liền với nó. Bạn có thể sao chép cục bộ để tạo cây làm việc cho nó hoặc bạn có thể sử dụng một trong các tùy chọn khác để báo cho Git biết cây đang làm việc ở đâu, ví dụ: tùy chọn --work-tree cho các lệnh đơn lẻ hoặc biến môi trường GIT_WORK_TREE. Ngoài ra còn có tùy chọn cấu hình core.worktree nhưng nó sẽ không hoạt động trong kho lưu trữ trống (hãy kiểm tra trang người dùng để biết nó làm gì).

# git --work-tree=/path/to/work/tree checkout master 
# GIT_WORK_TREE=/path/to/work/tree git status 
+2

Tôi có nhiều nơi làm việc thông qua ssh và ở trên cho con đường tôi không làm việc. Làm thế nào tôi có thể cung cấp cho con đường cây làm việc sau đó? –

+7

Uhm… bằng cách sử dụng tùy chọn '--work-tree', bằng cách đặt biến môi trường' GIT_WORK_TREE' hoặc bằng cách đặt tùy chọn cấu hình 'core.worktree'. Tôi có một déjà vu. – Bombe

+2

Hmm, tôi chỉ cần đặt lõi.bám thành sai, và lo và nhìn, nó đã hoạt động w/o - công việc-cây (mà các tài liệu nói rằng nếu không được đưa ra, git giả định bạn đang ở trên cùng của cây.) –

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