Как проверить, настроен ли адрес электронной почты пользователя Git

GitGitBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как проверить настроенный адрес электронной почты пользователя Git. Мы рассмотрим, как Git хранит и извлекает эту информацию, и поймем разницу между глобальными и локальными настройками.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/GitHubIntegrationToolsGroup(["GitHub Integration Tools"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/GitHubIntegrationToolsGroup -.-> git/cli_config("Configure CLI") subgraph Lab Skills git/config -.-> lab-560116{{"Как проверить, настроен ли адрес электронной почты пользователя Git"}} git/cli_config -.-> lab-560116{{"Как проверить, настроен ли адрес электронной почты пользователя Git"}} end

Выполнение команды git config user.email

На этом этапе мы рассмотрим, как Git хранит ваш адрес электронной почты. Git использует ваш адрес электронной почты для идентификации вас в истории коммитов. Это важно для отслеживания, кто внес какие изменения, особенно при совместной работе с другими людьми.

Ранее мы настроили глобальный адрес электронной почты в разделе настройки. Давайте посмотрим, как Git извлекает эту информацию.

Откройте терминал и выполните следующую команду:

git config user.email

Вы должны увидеть адрес электронной почты, который был настроен глобально:

[email protected]

Эта команда сообщает Git отобразить значение настройки конфигурации user.email. Когда вы запускаете git config без указания --global или --local, Git проверяет настройки конфигурации в определенном порядке: сначала локальные (специфичные для репозитория), затем глобальные (специфичные для пользователя), и, наконец, системные. Поскольку до сих пор мы настроили только глобальную конфигурацию, отображается глобальное значение.

Понимание того, как Git хранит и извлекает настройки конфигурации, такие как ваш адрес электронной почты, является важным аспектом настройки вашей среды Git и гарантии правильного связывания ваших коммитов с вами.

Проверка глобальной и локальной конфигурации электронной почты

На этом этапе мы рассмотрим разницу между глобальной и локальной конфигурацией Git, в частности, для настройки user.email.

Git позволяет настраивать параметры на разных уровнях:

  • Системный уровень: Применяется ко всем пользователям на системе.
  • Глобальный уровень: Применяется к определенному пользователю на системе (это то, что мы настроили на этапе настройки).
  • Локальный уровень: Применяется только к текущему репозиторию Git.

Локальные настройки переопределяют глобальные, а глобальные - системные.

Сначала явно проверим глобальную конфигурацию электронной почты с помощью флага --global:

git config --global user.email

Вы должны увидеть тот же адрес электронной почты, что и ранее:

[email protected]

Теперь попробуем установить локальный адрес электронной почты специально для репозитория my-time-machine, который мы создали в предыдущей лабораторной работе. Убедитесь, что вы все еще находитесь в директории ~/project/my-time-machine.

cd ~/project/my-time-machine
git config user.email "[email protected]"

Эта команда устанавливает user.email только для текущего репозитория (my-time-machine). Обратите внимание, что на этот раз мы не использовали флаг --global.

Теперь проверим user.email еще раз без каких-либо флагов, находясь в директории my-time-machine:

git config user.email

Что вы видите?

[email protected]

Отображается локальный адрес электронной почты! Это показывает, что локальная конфигурация имеет приоритет над глобальной в рамках этого конкретного репозитория.

Если вы выйдете из директории my-time-machine и снова запустите git config user.email, будет отображен глобальный адрес электронной почты, так как вне этого репозитория нет локальной конфигурации.

Возможность настройки локальных конфигураций очень полезна. Например, вы можете использовать личный адрес электронной почты для личных проектов (глобальная конфигурация), а рабочий адрес - для проектов, связанных с работой (локальная конфигурация в репозиториях рабочих проектов).

Тестирование с неустановленным адресом электронной почты

На этом этапе мы увидим, что происходит, когда в Git не настроен user.email на локальном уровне, но он настроен на глобальном. Это укрепит концепцию приоритета конфигурации.

Сначала убедимся, что мы находимся в директории my-time-machine:

cd ~/project/my-time-machine

Теперь мы сбросим локальную настройку user.email с помощью флага --unset:

git config --unset user.email

Эта команда удаляет настройку user.email именно из локальной конфигурации репозитория. Она не повлияет на глобальную конфигурацию.

Давайте проверим, что локальная конфигурация удалена, попробовав ее получить:

git config --local user.email

Вы должны увидеть сообщение об ошибке, указывающее, что ключ конфигурации не найден на локальном уровне:

error: key 'user.email' not found

Теперь проверим user.email еще раз без каких-либо флагов, находясь в директории my-time-machine:

git config user.email

Что вы ожидаете увидеть? Поскольку локальная конфигурация сброшена, Git должен вернуться к глобальной конфигурации.

[email protected]

Как и ожидалось, теперь снова отображается глобальный адрес электронной почты! Это подтверждает, что когда локальная конфигурация отсутствует, Git использует глобальную.

На этом этапе демонстрируется иерархия конфигураций Git. Git сначала ищет настройки на локальном уровне. Если не находит их там, он смотрит на глобальный уровень, а затем на системный. Это позволяет гибко настраивать конфигурацию в зависимости от потребностей разных проектов.

Резюме

В этой лабораторной работе мы научились проверять настроенный адрес электронной почты пользователя Git с помощью команды git config user.email. Мы изучили, как Git получает эту информацию, придавая приоритет сначала локальной, затем глобальной и, наконец, системной конфигурации. Мы также явно проверили глобальную конфигурацию электронной почты с помощью флага --global, поняв разницу между глобальным и локальным уровнями конфигурации и их приоритетами.