git: come posso configurare git per ignorare le modifiche alle autorizzazioni dei file


21

Ho alcuni progetti git in un server Linux.

io uso Mac e Linux per fare la mia programmazione. il problema è che le autorizzazioni del file system Mac non funziona davvero bene come in linux in modo che tutti i file sembra essere in umask 0755. Così ogni volta che tiro il mio codice sul mio Mac, git statusmostra che tutti i miei file sono cambiati e quando uso git diffesso mostra che l'unica modifica è nella umask. come posso dire a git di non archiviare e verificare eventuali cambiamenti di umask?

Grazie!


1
Sono abbastanza sicuro che OS X supporti i permessi in stile Unix ...
Grawity

1
umask e permessi non sono la stessa cosa. Sei sicuro di sapere davvero cosa stai facendo qui?
Marnen Laibow-Koser,

Risposte:


28

Impostare la core.fileModeproprietà di configurazione su false. Puoi farlo facilmente con questo comando:

git config core.fileMode false

È un'impostazione per repository o è possibile farlo funzionare a livello globale?
Acme,

2
@acme: come tutte le impostazioni di git, è possibile impostarlo per repository, per utente o per tutto il sistema, senza passare alcun interruttore aggiuntivo --global, o --system, rispettivamente. Vedi git help configper i dettagli.
Patch

Grazie! Ma impostarlo a livello globale non aggiunge automaticamente questa impostazione ai nuovi repository, è solo un'impostazione sul mio computer locale?
acme

@acme: Sì, l'impostazione di un'opzione --globalinfluisce su tutte le operazioni su qualsiasi repository a cui si accede localmente con l'account utente. Non influisce su nessun altro. Per impostarlo per tutti gli utenti di un determinato repository dovresti attivare l'impostazione per repository sul server a cui tutti spingono.
Patch

1

Ho un piccolo script di shell per attivare questo

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

Con questo posso attivare git, verificare la presenza di altre modifiche e quindi rimetterlo rapidamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.