git: comment puis-je configurer git pour ignorer les modifications des autorisations de fichiers

21

J'ai des projets git sur un serveur Linux.

j'utilise Mac et linux pour faire ma programmation. le problème est que les autorisations de système de fichiers de Mac ne fonctionne pas vraiment bien comme dans linux afin que tous les fichiers semble être sur umask 0755. donc chaque fois que je tire mon code sur mon mac, git statusmontre que tous mes fichiers sont modifiés et quand je l' utilise , git diffil montre que le seul changement est dans le umask. comment puis-je dire à git de ne pas stocker et vérifier les modifications umask?

Merci!

ufk
la source
1
Je suis sûr que OS X prend en charge les autorisations de style Unix ...
grawity
1
umask et les autorisations ne sont pas la même chose. Êtes-vous sûr de vraiment savoir ce que vous faites ici?
Marnen Laibow-Koser

Réponses:

28

Définissez la core.fileModepropriété de configuration sur false. Vous pouvez le faire facilement avec cette commande:

git config core.fileMode false
Patchs
la source
S'agit-il d'un paramètre par référentiel ou est-il possible de faire fonctionner cela à l'échelle mondiale?
Acme
2
@acme: comme tous les paramètres git, vous pouvez le définir par référentiel, par utilisateur ou à l'échelle du système, en ne passant aucun commutateur supplémentaire,, --globalou --system, respectivement. Voir git help configpour plus de détails.
Correctifs
Merci! Mais le définir globalement n'ajoute pas automatiquement ce paramètre aux nouveaux référentiels, c'est juste un paramètre sur ma machine locale?
acme
@acme: Oui, la définition d'une option avec --globalaffecte toutes les opérations sur n'importe quel référentiel accessible localement avec votre compte d'utilisateur. Cela n'affecte personne d'autre. Pour le définir pour tous les utilisateurs d'un référentiel particulier, vous devez basculer le paramètre par référentiel sur le serveur vers lequel tout le monde pousse.
Patchs du
1

J'ai un petit script shell pour basculer

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

Avec cela, je peux basculer git, vérifier les autres modifications, puis réactiver rapidement.

Alexx Roche
la source