Có vẻ Git được bỏ qua ~/.gitconfig
Git bỏ qua gitconfig?
$ git config --global core.filemode false
$ git config -l
core.filemode=false
core.filemode=true
Vì vậy, hiện nay có 2 mục cho core.filemode
và git vẫn không bỏ qua chế độ File thay đổi
$ touch modetest
$ git add .
$ git commit -m test1
[master (root-commit) 320cfe4] test1
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 modetest
$ chmod +x modetest
$ git diff
diff --git a/modetest b/modetest
old mode 100644
new mode 100755
Dựa trên torek’s answer, tôi đã thêm dòng này để .bash_profile
tôi
[ -d .git ] && git config core.filemode false
Không hoàn toàn chắc chắn như thế nào git thực sự thực hiện nó. Tôi phải đi sâu vào mã nguồn. Ah, có nó là: nó phụ thuộc vào mục cấu hình git build-time 'NO_TRUSTABLE_FILEMODE'. Nếu nó không được định nghĩa, nó sẽ kiểm tra thời gian chạy bằng chmod-ing '.git/config' mà cuối cùng nó thay thế bằng' .git/config.lock' để loại bỏ chmod tạm thời của nó. Phiên bản tạm thời có bộ u + x bit; nếu nó vẫn được đặt sau chmod, git tin rằng vấn đề x bit. – torek
điều này làm cho cảm giác hoàn hảo, nhưng dù sao là bực bội, tôi đã phải sao chép một dự án từ một máy tính khác 5 lần cho đến khi tôi nhận ra những gì đang xảy ra)) cảm ơn! –
Cảm ơn, tôi biết 'git config --global core.fileMode false' là vô dụng. git fileMode vấn đề tôi đã gặp nó mỗi ngày.Tôi đã phải cấu hình công cụ đó mỗi khi tôi tạo một dự án mới. –