git: como posso configurar o git para ignorar alterações nas permissões de arquivo

21

Eu tenho alguns projetos git em um servidor linux.

Eu uso Mac e Linux para fazer minha programação. o problema é que as permissões do sistema de arquivos mac realmente não funciona bem como em linux para que todos os arquivos parece estar em umask 0755. Assim, sempre que eu puxar o meu código no meu mac, git statusmostra que todos os meus arquivos são alterados e quando eu uso git diffisso mostra que a única alteração está no umask. como posso dizer ao git para não armazenar e verificar se há alterações no umask?

obrigado!

ufk
fonte
1
Tenho certeza OS X suporta permissões Unix-style ...
grawity
1
umask e permissões não são a mesma coisa. Tem certeza de que realmente sabe o que está fazendo aqui?
Marnen Laibow-Koser

Respostas:

28

Defina a core.fileModepropriedade de configuração como false. Você pode fazer isso facilmente com este comando:

git config core.fileMode false
Patches
fonte
Essa é uma configuração por repositório ou é possível fazer isso funcionar globalmente?
Acme
2
@acme: Como todas as configurações do git, você pode configurá-lo por repositório, por usuário ou em todo o sistema, não passando nenhum switch extra --global, ou --system, respectivamente. Veja git help configpara detalhes.
Patches
Obrigado! Mas configurá-lo globalmente não adiciona automaticamente essa configuração a novos repositórios, é apenas uma configuração na minha máquina local?
Acme #
@acme: Sim, definir uma opção --globalafeta todas as operações em qualquer repositório acessado localmente com sua conta de usuário. Não afeta mais ninguém. Para defini-lo para todos os usuários de um repositório em particular, você teria que alternar a configuração por repositório no servidor para o qual todos solicitam.
Patches
1

Eu tenho um pequeno script de shell para alternar isso

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

Com isso, posso alternar o git, verificar outras alterações e colocá-lo novamente rapidamente.

Alexx Roche
fonte