Como definir múltiplos `core.excludesfile` no` .gitconfig`?

13

Estou sincronizando ~/.gitconfige ~/.gitignorearquivos no ubuntu e Mac usando o dropbox e criei o link simbólico para ele.

E excludesfileé declarado assim.

[core]
        editor = /usr/bin/vim
        excludesfile = /Users/username/.gitignore

O problema é que o diretório inicial difere do sistema operacional, portanto, preciso de várias configurações para o arquivo excludes.

É possível definir múltiplos core.excludesfile?

ferros e areias
fonte

Respostas:

17

Você pode ter apenas um core.excludesfile; a última configuração é a que é usada. No entanto, você não precisa de vários arquivos: o git suporta ~como uma abreviação do seu diretório pessoal.

[core]
    excludesfile = ~/.gitignore

Em geral, se você realmente precisasse ter vários arquivos excluídos, a solução mais simples seria gerar um único arquivo que seja a concatenação dos outros e atualizá-lo sempre que um dos arquivos for alterado.

Gilles 'SO- parar de ser mau'
fonte
Meu .gitconfigestá realmente sob controle de versão pelo git. Infelizmente, o git se expande ~para ser o caminho completo $HOMEe se atualiza .gitconfigcom o caminho absoluto. Esse comportamento é bom, mas depois aparece como uma mudança sem estágio, então eu uso git update-index --assume-unchanged .gitconfigpara ignorar a expansão (junto com o restante do arquivo).
Dolph
2
@Dolph status-norepro O que você fez para ~expandir? Eu recebo: git config --global core.excludesfile '~/.gitignore'; git config --global core.excludesfile~/.gitignore(git 1.7.9.5)
Gilles 'SO- stop
1
@ Dolph Provavelmente essa foi uma expansão do shell; afinal, se você fizer git config --global core.excludesfile ~/.gitignore, o que é realmente executado é git config --global core.excludesfile /path/to/home/.gitignore.
Radon Rosborough 23/09/16
1
@Gilles, observe também que, por git-scm , o arquivo, ~/.config/git/ignorese existir, é globalmente ignorado automaticamente, sem a necessidade de configuração global.
Acumenus 03/10/16