4 ответов:
Git (1.7.10+) сейчас поддерживает этот синтаксис
.gitconfig:[include] path = /path/to/fileпосмотреть здесь для подробного описания изменения git и его крайних случаев.
кстати, пару тонкостей стоит отметить:
расширение переменной среды, например
$HOME, не поддерживается. (Расширение~появился в Git 1.7.10.2.)если указан относительный путь, тогда это по отношению к своему .gitconfig файл, который имеет
[include]заявление. Это работает правильно даже через цепочку включает -- например~/.gitconfigможет быть:[include] path = subdir/gitconfigи
subdir/gitconfigможет быть:[include] path = nested_subdir/gitconfig... что вызовет
subdir/nested_subdir/gitconfigчтобы быть загружен.если git не может найти целевой файл, он молча игнорирует ошибку. Это, кажется, по дизайну.
обновление 2012:
посмотреть Майк Morearty ' s ответ:
включает в себя
вы можете включить один конфигурационный файл из другого, установив специальный
include.pathпеременная к имени файла, который будет включен.
Включенный файл немедленно расширяется, как если бы его содержимое было найдено в расположении директивы include.
Если значениеinclude.pathпеременная a относительный путь, путь считается относительно файла конфигурации, в котором была найдена директива include.
Значениеinclude.pathподлежит расширению Тильды:~/увеличивается до значения$HOMEи~user/в домашний каталог указанного пользователя.
я так не думаю.
я бы предпочел поместить эту настройку в
~/.gitconfigfileпользовательский конфигурационный файл. Также называется "глобальный" файл конфигурации.
таким образом, он завершает.проект-конкретные gitconfig хранит настройки файл, не будучи опубликованы, когда толкнул на GitHub. Смотрите также это так что ответ для получения дополнительной информации о глобальном файле конфигурации.
ГИТ имеет 3 конфигурационные файлы.
bjeanes добавляет в комментарии:
похоже, что все пропустили суть этого вопроса.
Дэвид очевидно, хочет поднять РЕПО всех своих точечных файлов (bashrc,gemrcи т. д.) В том числе и его.gitconfigтаким образом, он может иметь все свои настройки на всех своих машинах.
Способ толкать части a.gitconfigфайл путем включения и игнорирования частных записей - это то, что он (и я, если на то пошло) после.возможным способом было бы использовать smudge / clean filter driver для расшифровки / шифрования одного файла с конфиденциальной конфиденциальной информацией (см. этот нить), чтобы завершить локальный файл, как ~/.gitconfig с расшифрованными частями, которые имеют отношение к этому файлу.
таким образом, вы можете иметь git РЕПО со всеми вашими точечными файлами, а также один файл с зашифрованной информацией, предназначенной для расшифровки и добавления к указанным точечным файлам.
на
.gitattributes(или.git/info/a..) использование:myPrivateInfosFile filter=gpg diff=gpgв свой РЕПО .конфигурационный файл:
[filter "gpg"] smudge = gpg -d -q --batch --no-tty clean = gpg -ea -q --batch --no-tty -r C920A124 [diff "gpg"] textconv = decrypt(a GPG-based решение означает, конечно, что вы передали свои личные / открытые ключи другим способом на конечный компьютер, где вы хотите восстановить все свои файлы dot, клонируя это специальное РЕПО)
на самом деле, в вашем случае сценарий smudge должен быть завершен, как он должен, после расшифровки этого файла, продолжайте и добавляйте соответствующие части в свой глобальный (если вы перезаписываете файл глобальной конфигурации с другим местоположением) или другие точечные файлы для этого вопрос.
https://kerneltrap.org/mailarchive/git/2008/3/13/1153274/thread (неудобства gpg обсуждаются далее в этой теме) (это отличается от полного инкритпированного РЕПО Git, как здесь обсуждается)
вы можете загрузить его из командной строки:
$ git config --local include.path "/path/to/.gitconfig"использовать
"$PWD"/.gitconfigвместо этого, если вы хотите загрузить файл из текущего каталога.после выполнения выше команды, следующие строки добавляются в ваш
.git/configfile:[include] path = /path/to/.gitconfig
Я верю, что вы можете сделать это с помощью инструмент концентратора defunkt. Это оболочка для команды git, которая среди прочего позволяет вам иметь
GITHUB_USERиGITHUB_TOKENпеременные среды. Который будет переопределять настройки в локальном .затем, чтобы сделать его бесшовным пользователь, которого вы указали на псевдоним
alias git=hubв своем zsh config. Затем вы должны иметь возможность создать локальный файл, в котором вы устанавливаете переменные среды и нажимаете репозиторий для публичного мира со всей вашей личной информацией в такт.**примечание для доморощенных пользователей на OSX, вы можете установить инструмент через
brew install hub.

Comments