Как установить несколько `core.excludesfile` в` .gitconfig`?

13

Я синхронизирую ~/.gitconfigи ~/.gitignoreфайлы в Ubuntu и Mac с помощью Dropbox и создал символическую ссылку для него.

И так excludesfileобъявлено.

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

Проблема в том, что домашний каталог отличается от os, поэтому мне нужно несколько настроек для excludefile.

Можно ли определить несколько core.excludesfile?

Ironsand
источник

Ответы:

17

Вы можете иметь только один core.excludesfile; последний параметр - тот, который используется. Тем не менее, вам не нужно несколько файлов: Git поддерживает ~как сокращение вашего домашнего каталога.

[core]
    excludesfile = ~/.gitignore

В общем, если вам действительно нужно иметь несколько исключаемых файлов, самое простое решение - создать один файл, который является объединением других, и обновлять его при каждом изменении одного из файлов.

Жиль "ТАК - перестань быть злым"
источник
Мой .gitconfigна самом деле находится под контролем версий Git. К сожалению, git расширяется ~до полного пути $HOMEи обновляет .gitconfigсебя абсолютным путем. Это нормальное поведение, но затем оно проявляется как неизменное изменение, поэтому я использую его, git update-index --assume-unchanged .gitconfigчтобы игнорировать расширение (вместе с остальной частью файла).
Dolph
2
@Dolph status-norepro Что вы сделали ~для расширения? Я получаю: git config --global core.excludesfile '~/.gitignore'; git config --global core.excludesfile~/.gitignore(git 1.7.9.5)
Жиль "
1
@Dolph Скорее всего, это было расширение оболочки; в конце концов, если вы делаете git config --global core.excludesfile ~/.gitignoreто, что на самом деле выполняется git config --global core.excludesfile /path/to/home/.gitignore.
Радон Росборо,
1
@ Жиль, обратите внимание также, что для git-scm файл, ~/.config/git/ignoreесли он существует, автоматически игнорируется глобально, без необходимости глобальной настройки.
Acumenus