git: Wie kann ich git so konfigurieren, dass Änderungen der Dateiberechtigungen ignoriert werden?


21

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

Ich benutze Mac und Linux, um meine Programmierung zu machen. Das Problem ist, dass die Berechtigungen des Mac-Dateisystems nicht so gut funktionieren wie unter Linux, sodass alle Dateien auf umask 0755 zu sein scheinen. Wenn ich also meinen Code auf meinen Mac ziehe, wird angezeigt, git statusdass alle meine Dateien geändert wurden und wann ich git diffsie verwende zeigt, dass die einzige Änderung in der umask ist. Wie kann ich git anweisen, keine umask-Änderungen zu speichern und zu überprüfen?

Vielen Dank!


1
Ich bin mir ziemlich sicher, dass OS X Berechtigungen im Unix-Stil unterstützt ...
grawity

1
Umask und Berechtigungen sind nicht dasselbe. Bist du sicher, dass du wirklich weißt, was du hier tust?
Marnen Laibow-Koser

Antworten:


28

Setzen Sie die core.fileModeKonfigurationseigenschaft auf false. Sie können dies einfach mit diesem Befehl tun:

git config core.fileMode false

Handelt es sich um eine Repository-Einstellung oder ist es möglich, diese Einstellung global zu verwenden?
18.01.12

2
@acme: Wie alle Git - Einstellungen, können Sie es per-Repository gesetzt, pro Benutzer oder systemweite , von keinem zusätzlichen Schalter vorbei, --globaloder --systemist. Siehe git help configfür weitere Einzelheiten.
Patches

Vielen Dank! Durch die globale Einstellung wird diese Einstellung jedoch nicht automatisch zu neuen Repositorys hinzugefügt, sondern nur auf meinem lokalen Computer.
Acme

@acme: Ja, das Setzen einer Option --globalwirkt sich auf alle Vorgänge in jedem Repository aus, auf das lokal mit Ihrem Benutzerkonto zugegriffen wird. Es betrifft niemanden. Um es für alle Benutzer eines bestimmten Repositorys festzulegen, müssen Sie die Einstellung pro Repository auf dem Server umschalten, zu dem jeder Push-Vorgang ausgeführt wird.
Patches

1

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

Damit kann ich git umschalten, auf andere Änderungen prüfen und dann schnell wieder anlegen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.