Tôi nghĩ rằng vấn đề là MSYS, trên đó triển khai Windows git dựa trên, không xử lý đúng cách chmod
.
(EDIT: Câu trả lời khác nói MSYS không phải là vấn đề, mà chắc chắn có vẻ hợp lý.)
tôi đoán là các lệnh
git update-index --add --chmod=+x test-file
công trình bằng cách cập nhật siêu dữ liệu trong kho lưu trữ cục bộ (sẽ hoạt động) và thay đổi quyền trên tệp (không có), đặt kho lưu trữ cục bộ vào trạng thái không nhất quán.
Bạn sẽ có thể trở lại trên này bằng việc lùi lại update-index
:
git update-index --add --chmod=-x test-file
git commit -m 'change mode back'
git push
để có được kho trở thành một nhà nước thống nhất, và sau đó làm cho sự thay đổi trong một bản sao không phải là Windows của kho. Nếu bạn không có quyền truy cập vào Linux hoặc hệ thống giống Unix khác, Cygwin bao gồm git
(không theo mặc định, nhưng bạn có thể cài đặt nó qua setup.exe
) và cung cấp cho bạn môi trường trong đó chmod
thực sự hoạt động. Vỏ mặc định cho Cygwin là bash, vì vậy môi trường nên quen thuộc nếu bạn đã sử dụng git bash.
Tệp vẫn không có vẻ thực thi được khi bạn xem nó từ git bash shell, nhưng nó sẽ hiển thị dưới dạng 100755
trong giao diện web GitHub.
Nguồn
2012-01-27 10:35:32