Git публично выставляет мой адрес электронной почты? - PullRequest
79 голосов
/ 22 мая 2009

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

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

Ответы [ 8 ]

34 голосов
/ 12 августа 2013

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

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

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

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

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

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

Примечание: как прокомментировано ниже от orev , Git ничего не раскрывает. GitHub , репозитории Git хостинг сервис, может.
Место, где вы запускаете локальное Git-репо, может предоставлять метаданные.


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

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

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

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

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, чтобы переписать историю репозитория и принудительно нажмите новую историю.

33 голосов
/ 22 мая 2009

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

Author: Joe White <joewhite@mysite.com>

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

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

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

10 голосов
/ 05 сентября 2012

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

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

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

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

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

6 голосов
/ 23 мая 2009

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

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

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

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

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

briancolfer(at)comcast.net

Как пример.

4 голосов

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

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

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

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

Практический способ получить чей-то коммит с помощью API

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

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

Есть также:

4 голосов
/ 16 января 2013

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

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

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

4 голосов
/ 12 мая 2012

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

#!/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"
'

Взято с здесь

4 голосов
/ 22 мая 2009

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

...