Có một repo trần từ xa mà trên đó tôi đã đẩy nhánh từ một máy và kéo đến một máy khác.Nhận lỗi 'receive.denyCurrentBranch' khi chuyển sang chế độ Git repo trần
Đã thực hiện một số thay đổi trên máy khác, cố gắng đẩy những thay đổi đó trở lại repo trần từ xa và tôi nhận được lỗi 'receive.denyCurrentBranch'.
Điều gì đang xảy ra?
Điều này không có nghĩa vụ xảy ra trên một repo trần - không có gì được kiểm tra trên đó.
Các chi nhánh khi nhìn từ máy 2 là:
Fix
dev1
dev2
remotes/origin/HEAD -> origin/dev1
remotes/origin/Fix
remotes/origin/dev1
remotes/origin/dev2
remotes/origin/master
'Fix' là chi nhánh hiện nay trên cả hai máy dev.
Khi tôi ban đầu kéo chi nhánh trên máy 2, tôi đã làm:
git pull
git checkout -b Fix origin/Fix
Tôi nghi ngờ về dòng 'điều khiển từ xa' đầu tiên - Có vẻ như các HEAD nên được trỏ đến chi nhánh hiện tại của tôi, nhưng nó không phải. Nghĩ rằng tôi thiếu cái gì, ở đây ..
Cập nhật 1 tôi sáp nhập chi nhánh 'Fix' xuống đến chi nhánh dev1, và sau đó pushd của dev1 'chi nhánh - mà làm việc ok (Tôi sắp sửa làm mà, dù sao).
Vì vậy, đó là một giải pháp, nhưng tôi nghĩ vấn đề thực sự là HEAD không được gắn với nhánh hiện tại ('Fix'), mà là một nhánh không hoạt động ('dev1'). Tôi không chắc chắn làm thế nào để thay đổi đầu trên repo từ xa?
Ai đó hãy sửa tôi nếu tôi sai, nhưng kho trần không được cho là có * có * HEAD.Điều đó sẽ chỉ ra rằng có một thư mục làm việc, và các điểm HEAD đến cam kết nó được dựa trên ... Bạn có chắc chắn repo từ xa là trần? – Jonathan
Khá chắc chắn. Không có dự án nào được kiểm xuất và tất cả các tệp 'git' đều nằm trong thư mục cấp cao nhất của kho lưu trữ. – rickb
Jonathan, kho Git trống không có HEAD, nhưng không có không gian làm việc mặc định. Một không gian làm việc vẫn có thể tồn tại cho một kho lưu trữ trống, nhưng bạn phải thông báo cho Git biết nó tồn tại ở đâu bằng biến môi trường 'GIT_WORK_TREE' hoặc tùy chọn Git' --work-tree' và vị trí của kho lưu trữ bằng biến môi trường 'GIT_DIR' hoặc tùy chọn' - -git-dir'. –