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


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

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

8 72

8 ответов:

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

Author: Joe White <joewhite@mysite.com>

таким образом, информация доступна любому, у кого есть копия РЕПО, поскольку она действует как идентификатор.

ваш электронной почты, вероятно, не будет виден спам-ботов, хотя, если вы не используете Gitweb или сервис, подобный GitHub, чтобы сделать ваше РЕПО доступным через web-интерфейс (просто положить его в Интернете не делает этого).

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

Обновление Апрель 2017

В разделе "частные письма, теперь более частные"

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

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

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

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


Внимание:9 августа 2013 года, теперь вы можете сохранить свою электронную почту адрес частный!

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

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

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

email settings

при этом включен, веб-операции будут использовать username@users.noreply.github.com адрес электронной почты.


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

вам все еще нужно чтобы настроить свою (поддельную) электронную почту в локальном РЕПО, прежде чем вернуться к GitHub, если вы хотите, чтобы ваши коммиты отражали

git config --global user.email "user@server.fake" # Set email to slightly changed value
git config --global user.email # Verify the setting
# user@server.fake

затем:

  • перейдите в меню Настройки электронной почты
  • нажмите "Добавить еще один адрес электронной почты"
  • введите поддельное письмо (например,"user@server.fake") и нажмите кнопку "Добавить"

add new email address

внимание:

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

использовать git filter-branch переписать историю репозитория и принудительно толкать новую историю вверх.

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

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

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

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

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

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

git config --global user.email "me@email.com"

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

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

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

briancolfer(at)comcast.net

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

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

можно задним числом изменить имя автора, email и т. д. Помните, что выполнение следующих действий может повредить вашу историю.

#!/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" = "your@email.to.match" ]
then
    cn="Your New Committer Name"
    cm="Your New Committer Email"
fi
if [ "$GIT_AUTHOR_EMAIL" = "your@email.to.match" ]
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"
'

принято от здесь

в GitHub есть раздел справки о настройка адреса электронной почты.

в частности, она говорит:

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

миллионы 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.

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

практический способ получить чью-то фиксацию электронной почты с помощью API

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

и https://api.github.com/users/cirosantilli/events/public

также: