Làm cách nào tôi có thể tạo các tệp tôi kiểm tra bằng git trên Windows có thể ghi theo mặc định trong Cygwin?


2

Tôi đang phát triển trên Windows và tôi thích chạy git và xây dựng các lệnh từ dòng lệnh Windows, nhưng đôi khi tôi cũng thích sử dụng cygwin khi tôi muốn khám phá kho dự án bằng các công cụ Unix yêu thích của mình.

Vấn đề tôi gặp phải là bất cứ khi nào tôi thực hiện bất kỳ loại kiểm tra git nào, các tệp mà nó kiểm tra đều chỉ đọc theo quan điểm của cygwin. Tôi có thể sửa nó dễ dàng với một chmod đệ quy, nhưng tôi không muốn phải làm điều đó sau mỗi lần kiểm tra git. Lưu ý rằng nếu tôi chỉnh sửa các tệp tương tự bằng bất kỳ chương trình Windows nào, chúng có thể ghi được - chỉ cygwin xem chúng là chỉ đọc.

Tôi không chắc mình có thể thêm hook git không, vì như tôi đã nói, tôi đang chạy kiểm tra git từ dòng lệnh Windows.

Tôi đoán tôi bối rối về sự tương tác giữa quyền Windows và quyền cygwin.


Khi bạn chạy Git từ dòng lệnh Windows, bạn có biết bạn đang sử dụng Cygwin Git không? Nếu bạn không chắc chắn, bạn có thể đăng kết quả đầu ra git --exec-pathkhông?
me_ và

Không, tôi không sử dụng Cygwin git, tôi chỉ kiểm tra. Tôi thích sử dụng phiên bản git không phải Cygwin vì tôi đang sử dụng một số hook cho rằng nó đang chạy từ môi trường Windows, không phải môi trường Cygwin.
dmazzoni

Tôi biết tôi có thể chuyển sang sử dụng Cygwin git, nhưng đó không phải là điều tôi muốn làm - điều tôi muốn làm là hiểu mối quan hệ giữa quyền của tệp Windows và quyền của tệp Cygwin. Làm cách nào tôi có thể đặt quyền trong Windows để tệp có thể đọc được trong Cygwin?
dmazzoni

Câu trả lời:


3

Không mất một chút thời gian để vượt qua các quyền của tệp Windows, bạn khó có thể nói chính xác điều gì đang xảy ra.

Rất may, tôi không cần phải biết điều đó. Cách khắc phục đơn giản để giải quyết tất cả các tai ương cho phép tệp của bạn là sử dụng noacltùy chọn cho tất cả các giá trị Cygwin.

Mở /etc/fstabtrong trình soạn thảo văn bản Cygwin yêu thích của bạn (hoặc, thông thường, C:\cygwin\etc\fstabtrong Windows yêu thích của bạn, miễn là nó hỗ trợ các kết thúc dòng Unix [vì vậy không phải là Notepad]). Của tôi trước đây trông như thế này:

# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table

# This is default anyway:
# none /cygdrive cygdrive binary,posix=0,user 0 0

Nếu dòng cuối cùng vẫn được nhận xét, hãy xóa hàng đầu để hệ thống sẽ chú ý đến nó. Nó có thể không được bình luận, trong trường hợp đó sẽ không có để xóa.

Sau đó, vào danh sách các tùy chọn (đó là binary,posix=0,userbit), thêm ,noaclvào cuối. Dòng liên quan trong tôi /etc/fstabsau đó trông giống như dưới đây:

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

Sau đó đóng và mở lại tất cả các ứng dụng Cygwin của bạn (bạn có thể cần phải khởi động lại) và bạn sẽ ngừng xem bất kỳ vấn đề về quyền nào.

Lưu ý rằng nếu bạn đã làm những việc phức tạp với điểm gắn kết của mình, bạn có thể cần chỉnh sửa nhiều dòng /etc/fstab, cũng như bất kỳ tệp nào đã tích lũy /etc/fstab.d. Những thay đổi bạn cần thực hiện sẽ giống nhau cho tất cả những thay đổi này.

Các noacltùy chọn sẽ cho kết quả trong Cygwin hoàn toàn phớt lờ tất cả các danh sách kiểm soát truy cập NTFS. Nó vẫn sẽ xem xét thuộc tính chỉ đọc của DOS, nhưng nó không bị ràng buộc với bất kỳ người dùng nào. Điều này có nghĩa là nó sẽ không thể biết liệu một tập tin có thể thực thi được hay không dựa trên quyền; thay vào đó, nó giả sử bất kỳ tập tin nào kết thúc .bat, .comhoặc .execó thể thực thi được, cũng như bất kỳ tập tin nào bắt đầu bằng #!.

Đọc thêm, nếu bạn quan tâm, từ Hướng dẫn sử dụng của Cygwin:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.