Открывает ли Git мой адрес электронной почты?

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

Почему Git нужен мой адрес электронной почты? И что еще более важно, если я сделаю свое репо общедоступным, например, через GitHub, мой адрес электронной почты будет видимым для всех (включая спам-боты)?

Ответ 1

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

Author: Joe White <[email protected]>

Таким образом, информация доступна для всех, у кого есть копия репо, поскольку она действует как идентификатор.

Возможно, ваш адрес электронной почты, вероятно, не будет виден на spambots, если вы не используете Gitweb или службу GitHub, чтобы сделать ваше репо доступным через веб-интерфейс (просто его размещение в Интернете этого не делает).

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

Ответ 2

Обновление апреля 2017 года

См. " Частные электронные письма, теперь более частные

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

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

Если вы хотите, чтобы вы случайно не опубликовали свой адрес электронной почты, просто проверьте параметры "Держите мой адрес электронной почты в частном порядке" и "Блокировать командную строку, которые выставляют мою электронную почту" в настройки электронной почты.

https://cloud.githubusercontent.com/assets/33750/24673856/a995cb74-1947- 11e7-8653-65bc604a4101.png


Примечание. Запуск 9 августа 2013 года вы можете сохранить свой адрес электронной почты частным!

Это относится к операциям GitHub в Интернете, но: все еще содержат адрес электронной почты, который может или не может быть таким же, как тот, который используется для вашей учетной записи GitHub.
См. Ниже "mask", что (git commit) электронная почта тоже.

До сегодняшнего дня все сетевые потоки GitHub Flow использовали ваш основной адрес электронной почты. Это включает в себя создание, редактирование и удаление файлов, а также объединение запросов на растяжение.

Но теперь вы можете сохранить свой адрес электронной почты частным. Для этого перейдите на страницу настроек электронной почты:

email settings

После этого веб-операции будут использовать адрес электронной почты [email protected]


Если вы хотите скрыть свою электронную почту с вашего компьютера, GitHub теперь позволяет регистрировать разные адреса электронной почты: см. это руководство.

Вам все равно нужно настроить свой (поддельный) адрес электронной почты в своем локальном репо, прежде чем возвращать его в GitHub, если вы хотите, чтобы ваши коммиты отображали

git config --global user.email "[email protected]" # Set email to slightly changed value
git config --global user.email # Verify the setting
# [email protected]

Тогда:

  • Перейдите в меню настроек электронной почты.
  • Нажмите "Добавить другой адрес электронной почты"
  • Введите поддельное электронное письмо (например, "[email protected]" ) и нажмите "Добавить"

add new email address

Обратите внимание, что:

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

Используйте git filter-branch, чтобы переписать историю хранилища и принудительно нажмите новую историю.

Ответ 3

В GitHub есть статья справки под названием Сохранение вашего частного адреса, который начинается:

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

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

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

В руководстве содержатся инструкции по настройке как Git, так и GitHub для использования поддельного адреса.

Ответ 4

Да, приведенные выше ответы верны... кроме того, что вы хотите, как правило, иметь одинаковый адрес электронной почты для всех своих проектов, тогда вы будете использовать команду:

git config --global user.email "[email protected]"

Вы также можете отредактировать файл .gitconfig в своем домашнем каталоге в разделе пользователя.

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

Кроме того, я предлагаю, чтобы вы могли запутать вашу электронную почту, если отправления отправляются в общественную зону:

briancolfer(at)comcast.net

В качестве примера.

Ответ 5

Да, ваш адрес электронной почты (как указано в git config user.email) будет отображаться в веб-интерфейсах, таких как GitWeb. Также каждый может узнать ваш адрес электронной почты, клонировав ваш репозиторий, хотя это, вероятно, еще далеко от спам-ботов. Однако никто не заставляет вас использовать настоящий адрес электронной почты. Git автоматически установит построенный адрес электронной почты, если ни один не указан. На моей машине без user.email он показывает фиксацию с помощью "Foo < foo @дочь. (None) > ".

Ответ 6

Вы можете ретроактивно изменять имя автора, адрес электронной почты и т.д. ОЖИДАЙТЕ, что выполнение следующего может испортить вашу историю.

#!/bin/sh

git filter-branch --env-filter '

an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"

if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ]
then
    cn="Your New Committer Name"
    cm="Your New Committer Email"
fi
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]
then
    an="Your New Author Name"
    am="Your New Author Email"
fi

export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
'

Взято из здесь

Ответ 8

Миллионы GitHub совершают письма: https://github.com/cirosantilli/all-github-commit-emails, извлеченные из архивов GitHub https://www.githubarchive.org экспортирует фиксацию.

Архив GitHub получает данные из API событий GitHub: https://developer.github.com/v3/activity/events/types/#pushevent и ежечасно экспортирует его в Google BigQuery, что упрощает запрос.

Электронные сообщения отображаются в событиях типа PushEvent.

Я не думаю, что фиксация сообщений электронной почты отображается в любом месте на веб-интерфейсе GitHub, поэтому любая коллекция ограничена ограничением скорости API. TODO: сколько времени собирать электронные письма 1M через API с нуля.

Практический способ заставить кого-то совершить электронную почту с помощью API

ghmail() { curl "https://api.github.com/users/$1/events/public" | grep email; }
ghmail cirosantilli

или посетите: https://api.github.com/users/cirosantilli/events/public

Есть также: