git: Wie kann ich git konfigurieren, um Änderungen an Dateiberechtigungen zu ignorieren

16515
ufk

Ich habe einige Git-Projekte in einem Linux-Server.

Ich benutze Mac und Linux für meine Programmierung. Das Problem ist, dass die Berechtigungen des Mac-Dateisystems nicht wirklich gut funktionieren, wie in Linux. Daher scheinen alle Dateien auf Umask 0755 zu sein. Wenn ich also meinen Code auf meinen Mac ziehe, git statuszeigt dies, dass alle meine Dateien geändert werden und wann ich git diffsie verwende zeigt, dass die einzige Änderung in der umask ist. wie kann ich git anweisen, nicht zu speichern und auf umask-änderungen zu prüfen?

Vielen Dank!

21
Ich bin mir ziemlich sicher, dass OS X Berechtigungen im Unix-Stil unterstützt ... grawity vor 13 Jahren 1
Umask und Berechtigungen sind nicht dasselbe. Bist du sicher, dass du wirklich weißt, was du hier machst? Marnen Laibow-Koser vor 10 Jahren 1

2 Antworten auf die Frage

28
Patches

Legen Sie die core.fileModeKonfigurationseigenschaft auf fest false. Mit diesem Befehl können Sie dies problemlos tun:

git config core.fileMode false 
Ist dies eine Pro-Repository-Einstellung oder kann dies global funktionieren? acme vor 12 Jahren 0
@acme: Wie alle Git-Einstellungen können Sie sie pro Repository, pro Benutzer oder systemweit festlegen, indem Sie keinen zusätzlichen Schalter "--global" bzw. "--system" übergeben. Weitere Informationen finden Sie unter "git help config". Patches vor 12 Jahren 2
Vielen Dank! Wenn Sie diese Option global festlegen, wird diese Einstellung nicht automatisch neuen Repositorys hinzugefügt. Es handelt sich lediglich um eine Einstellung auf meinem lokalen Computer. acme vor 12 Jahren 0
@acme: Ja, das Festlegen einer Option mit --global hat Auswirkungen auf alle Vorgänge in jedem Repository, auf das mit Ihrem Benutzerkonto lokal zugegriffen wird. Es betrifft niemanden anderen. Um es für alle Benutzer eines bestimmten Repositorys festzulegen, müssen Sie die Pro-Repository-Einstellung auf dem Server, auf den sich jeder schiebt, umschalten. Patches vor 12 Jahren 0
1
Alexx Roche

Ich habe ein kleines Shell-Skript, um dies umzuschalten

cat ~ / bin / git-ignore-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 

Mit diesem kann ich git umschalten, nach anderen Änderungen suchen und dann schnell wieder aufsetzen.