На GitHub я успешно открыл PR в общедоступном репозитории, который недавно был объединен:
My Pull Request (#25)
* Feature 1
* Feature 2
* Bump version
---------
Authored-by: My Username <[email protected]>
Моя проблема в том, что мой личный адрес электронной почты теперь общедоступен, чего я совершенно не хочу.
Есть ли способ как-то это скрыть?
До сих пор я пробовал:
git config --global user.email "[email protected]"
БОНУС: я читал, что, возможно, amend
может помочь, но процедура мне все равно не ясна. Будет ли это работать даже при редактировании информации из уже объединенных коммитов?
Наконец, имеют ли сопровождающие общедоступного репозитория право изменять такую отображаемую информацию?
Да, amend
ing мог бы помочь в общем случае, но, наверное, не здесь.
Поскольку он был объединен, вам нужно будет попросить владельцев репозитория внести в коммит слияния другие метаданные и принудительно отправить основную ветку.
Я сомневаюсь, что они захотят это сделать, потому что это приведет к разным историям людей, которые уже клонировали эту основную ветку и т. д. – короче говоря, к большой боли.
имеют ли сопровождающие общедоступного репозитория право изменять такую отображаемую информацию?
Как обсуждалось выше, они имеют право изменять коммиты в своем репозитории, где хранятся эти данные, но любые клоны этого репо по-прежнему будут иметь старые данные.
Кроме того, даже старые версии веб-сайтов (включая репозитории программного обеспечения) часто копируются/кэшируются/архивируются в нескольких местах, систематически и спонтанно. Удалить из Интернета информацию, которая когда-то была его частью, практически невозможно.
Я успешно внес изменения в свои коммиты в своей ветке, обновив свой адрес электронной почты знаком .noreply
. Как и ожидалось, итоговое PR-сообщение осталось неизменным.
Ветка не имеет значения, поскольку она уже объединена. Если бы изменения в ваших личных ветках повлияли на объединенную историю, это была бы катастрофа для всех.
Да, и, глядя на рассматриваемый коммит, это коммит сквош-слияния (кстати, это строка Co-authored-by:
в сообщении коммита), поэтому ваши исходные коммиты вообще не имеют значения.
Как удалить личную электронную почту из коммитов git
Ты не сможешь это сделать.
Git позволяет вам писать новые коммиты и перенавешивать метки, чтобы метки теперь указывали на эти новые коммиты, а не на старые, это нормально, но это просто невозможно (не как авторитетная вещь, это «потому что математика» вещь), чтобы фактически изменить существующую историю. Новая история будет иметь другой идентификатор.
Итак, git commit --amend
записывает новый коммит с любыми изменениями, которые вы хотите сделать, снимком, предком, сообщением и/или автором/коммиттером или метками времени, и повторно вешает метку подсказки ветки на этот новый коммит, оставляя старый в текущем репозитории. Старый коммит все еще там. Git в конечном итоге приступит к сбору мусора, если он недоступен по какой-либо другой ссылке или повторному журналу в течение достаточно долгого времени, и репозиторий смотрит на быстрые проверки Git, как будто ему не помешала бы хорошая уборка.
В частности, вы не можете сделать это в чужих репозиториях. Их репозитории принадлежат им, вы отправляете кому-то письмо, это письмо принадлежит им. Это больше не твое. У вас нет, ноль, никакого, молния, пшик, никакого способа изменить истории в их репозиториях, которые они не стараются изо всех сил настроить для вас.
Максимум, что вы можете сделать, это попросить их отказаться от вашей ошибочно отправленной истории и надеяться, что за это время никто не загрузил ее в свои репозитории. Если у вас есть права принудительного нажатия на ветки, с которыми они объединили вашу историю, вы можете отказаться от них самостоятельно, но, например, я думаю, что GitHub ведет учет советов по PR, и я не уверен на 100% но я думаю вам понадобится личная помощь сотрудников GitHub, чтобы удалить их.
Публикация в общедоступном репозитории означает публикацию на глобально доступном размещенном сервере, явно предназначенном для глобального перераспределения. Вероятно, лучше всего относиться к этому как к «усвоенному уроку».
Ты прав, туше
Вы делаете копию физического письма. Оригинал вы отправляете в Алматы, Казахстан. Вы можете изменить копию по своему усмотрению. Вы не можете изменить то, что написали в исходном письме.