любопытно: где git хранит информацию пользователя?

18

Мне интересно, где git хранит пользовательскую информацию. Я создал репозиторий, на котором работают как я, так и мой друг. Когда мы оба совершаем, мы можем видеть нас обоих как отдельных авторов для разных изменений. в то время как файл .gitconfig создан с использованием git config --global в его домашней папке, я не мог найти его в своем. Итак, где хранится моя пользовательская информация? % Co_de% влияет только на отдельного пользователя входа?

    
задан goh 07.09.2011 в 06:21
источник

3 ответа

5

Если вы не храните информацию о пользователях в своих конфигурационных файлах, Git ищет в среде информацию об участниках, используя переменные GIT_COMMITTER_NAME , GIT_COMMITTER_EMAIL , GIT_AUTHOR_NAME и GIT_AUTHOR_EMAIL . В отсутствие этих переменных ваше имя пользователя и имя хоста используются для создания значения. Таким образом, даже без какой-либо информации пользователя, хранящейся в файлах конфигурации, у двух пользователей будет информация о коммиттерах.

    
ответ дан Bombe 07.09.2011 в 06:39
  • Ах, хорошая добыча! +1 –  jweyrich 07.09.2011 в 06:49
  • Эта информация (мое письмо) становится общедоступной? Когда я передаю GitHub предоставление моего электронного письма, станет ли он видимым для всех, кроме серверов GitHub? –  Shimmy 06.11.2017 в 04:52
21

Существует три пути по умолчанию для файла конфигурации.

  • Репозиторий: <your_git_repository>/.git/config
  • Домашний каталог пользователя: ~/.gitconfig
  • Общесистемный каталог: $(prefix)/etc/gitconfig

Параметр --global всегда использует домашний каталог. Обратите внимание, что git всегда будет пытаться прочитать все из них. Если он найдет один, он загрузит его и перейдет к следующему. Локаль имеет приоритет над глобальным, что имеет приоритет перед общесистемной. Он использует простой алгоритм слияния ключей.

Ссылка: git-config FILES

    
ответ дан jweyrich 07.09.2011 в 06:29
  • странный, работающий find / -name gitconfig не возвращает мне никаких результатов. –  goh 07.09.2011 в 06:39
  • У вас есть env var GIT_CONFIG_LOCAL? Другая возможность цитируется @Bombe в его ответе. –  jweyrich 07.09.2011 в 06:48
  • что такое $ {префикс}? –  yair 17.03.2014 в 16:06
  • @yair Это префиксный путь, указанный во время компиляции. Если вы установили Git с помощью диспетчера пакетов (apt, yum и т. Д.), Он устанавливает его глобально без префикса. Если вы используете что-то вроде macports, завариваете, то он указывает префикс, например / usr / local или / opt / local. Вы можете указать этот префикс при компиляции большинства программ, которые используют autotools. –  jweyrich 17.03.2014 в 18:47
4

Существует три места - система (все пользователи в системе $(prefix)/etc/gitconfig ), глобальные (для пользователя в ~/.gitconfig ) и локальные (для репо в .git/config ). Любая конфигурация должна быть в любом из трех, которые должны быть приняты git.

Однако, если задано GIT_CONFIG или myriad другая переменная среды, некоторые из этих значений будут исходить от них. Если вы не можете найти то, что хотите в любом из файлов конфигурации, или даже не можете найти эти файлы, посмотрите на все переменные среды GIT_ * в качестве последнего средства.

Подробнее здесь:

Ссылка

    
ответ дан manojlds 07.09.2011 в 06:25