git: bagaimana saya bisa mengkonfigurasi git untuk mengabaikan perubahan izin file

21

Saya punya beberapa proyek git di server linux.

saya menggunakan Mac dan linux untuk melakukan pemrograman saya. masalahnya adalah bahwa hak akses mac filesystem ini tidak benar-benar bekerja dengan baik seperti di linux sehingga semua file tampaknya berada di umask 0755. sehingga setiap kali saya tarik kode saya di mac saya, git statusmenunjukkan bahwa semua file saya berubah dan ketika saya menggunakan git diffitu menunjukkan bahwa satu-satunya perubahan adalah di umask. bagaimana saya bisa memberitahu git untuk tidak menyimpan dan memeriksa perubahan umask?

Terima kasih!

Uhk
sumber
1
Saya cukup yakin OS X mendukung izin gaya Unix ...
grawity
1
umask dan izin bukan hal yang sama. Apakah Anda yakin benar-benar tahu apa yang Anda lakukan di sini?
Marnen Laibow-Koser

Jawaban:

28

Setel core.fileModeproperti konfigurasi ke false. Anda dapat melakukan ini dengan mudah dengan perintah ini:

git config core.fileMode false
Tambalan
sumber
Apakah ini pengaturan per-repositori atau mungkinkah ini berfungsi secara global?
Acme
2
@acme: Seperti semua pengaturan git, Anda dapat mengaturnya per-repositori, per pengguna, atau seluruh sistem, dengan tidak melewatkan switch tambahan --global,, atau --system, masing-masing. Lihat git help configdetailnya.
Tambalan
Terima kasih! Tetapi pengaturan secara global tidak secara otomatis menambahkan pengaturan ini ke repositori baru, itu hanya pengaturan pada mesin lokal saya?
acme
@acme: Ya, mengatur opsi dengan --globalmempengaruhi semua operasi pada repositori yang diakses dengan akun pengguna Anda secara lokal. Itu tidak memengaruhi orang lain. Untuk mengaturnya untuk semua pengguna repositori tertentu Anda harus mengaktifkan pengaturan per-repositori di server yang semua orang dorong.
Tambalan
1

Saya memiliki skrip shell kecil untuk beralih ini

cat ~ / bin / git-abaikan-chmod-toggle

#!/bin/bash
# Copyright 2015 Alexx Roche, MIT license.
# based on http://superuser.com/a/261076

gitCHMODstate=$(git config --get core.fileMode)

# toggle with git config core.fileMode true 

if [ $gitCHMODstate == 'true' ];then
    echo "git now ignores file mode (chmod)"
    git config core.fileMode false
else
    echo "git not looks for files modes changed with chmod"
    git config core.fileMode true
fi

Dengan ini saya bisa beralih git, periksa perubahan lainnya dan kemudian nyalakan kembali dengan cepat.

Alexx Roche
sumber