Thử:
git config core.fileMode false
Từ git-config (1) :
core.fileMode
Tells Git if the executable bit of files in the working tree
is to be honored.
Some filesystems lose the executable bit when a file that is
marked as executable is checked out, or checks out a
non-executable file with executable bit on. git-clone(1)
or git-init(1) probe the filesystem to see if it handles the
executable bit correctly and this variable is automatically
set as necessary.
A repository, however, may be on a filesystem that handles
the filemode correctly, and this variable is set to true when
created, but later may be made accessible from another
environment that loses the filemode (e.g. exporting ext4
via CIFS mount, visiting a Cygwin created repository with Git
for Windows or Eclipse). In such a case it may be necessary
to set this variable to false. See git-update-index(1).
The default is true (when core.filemode is not specified
in the config file).
Các -c
lá cờ có thể được sử dụng để thiết lập tùy chọn này cho một lần lệnh:
git -c core.fileMode=false diff
Và --global
cờ sẽ làm cho nó trở thành hành vi mặc định cho người dùng đã đăng nhập.
git config --global core.fileMode false
Thay đổi của cài đặt toàn cầu sẽ không được áp dụng cho các kho lưu trữ hiện có. Thêm vào đó, git clone
và git init
rõ ràng thiết lập core.fileMode
để true
trong cấu hình repo như đã thảo luận trong Git core.fileMode toàn cầu giả ghi đè cục bộ trên bản sao
Cảnh báo
core.fileMode
không phải là thực hành tốt nhất và nên được sử dụng cẩn thận. Cài đặt này chỉ bao gồm bit thực thi của chế độ và không bao giờ các bit đọc / ghi. Trong nhiều trường hợp, bạn nghĩ rằng bạn cần cài đặt này vì bạn đã làm một cái gì đó như thế chmod -R 777
, làm cho tất cả các tệp của bạn có thể thực thi được. Nhưng trong hầu hết các dự án, hầu hết các tệp không cần và không thể thực thi được vì lý do bảo mật .
Cách thích hợp để giải quyết loại tình huống này là xử lý riêng quyền thư mục và tệp, với nội dung như:
find . -type d -exec chmod a+rwx {} \; # Make folders traversable and read/write
find . -type f -exec chmod a+rw {} \; # Make files read/write
Nếu bạn làm điều đó, bạn sẽ không bao giờ cần sử dụng core.fileMode
, ngoại trừ trong môi trường rất hiếm.