Git автор неизвестен - PullRequest
       4

Git автор неизвестен

38 голосов
/ 27 ноября 2011

имя моего автора во всех моих коммитах выглядит как неизвестно https://github.com/freeenergy/Teacher-Login-Validation-Module

сделал это

$ git config --global user.name "Firstname Lastname"Sets the name of the user for all git instances on the system
$ git config --global user.email "your_email@youremail.com"

, но имя автора / коммиттера все равно показывает [неизвестно]

не зная, что я делал, я экспериментировал с установкой $ GIT_AUTHOR_NAME = "мое имя", и он изменил мое имя на мое имя пользователя [freeenergy] (т.е. моя проблема была исправлена.) Но когда я вернулся кна другом компьютере проблема была такой же.

мой конфигурационный файл теперь выглядит так, но все еще фиксируется как [unknown]

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
[remote "origin"]
    url = git@github.com:freeenergy/my-project.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = my name
    email = myEmail.com

Ответы [ 5 ]

49 голосов
/ 27 ноября 2011

Даже лучше, чем запуск git config, вы можете редактировать файл ~/.gitconfig напрямую.Посмотрите, есть ли раздел для [user] с соответствующей информацией.Например, у моего ~/.gitconfig есть это ...

[user]
    name = Bob Gilmore
    email = me@mydomain.com

(перед [user] нет места и одиночные вкладки перед именем и метками электронной почты)

Если он не настроен должным образом, просто отредактируйте файл .gitconfig вручную.

24 голосов
/ 04 февраля 2013

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

Копируется в случае катастрофического события, когда Github падает или перестает существовать.

Почему мои коммиты связаны не с тем пользователем?

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

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

Сделайте так, чтобы они совпадали

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

Настройка git

Чтобы проверить настройки git, выполните эту команду:

$ git config user.email
# you@there.com

Если это письмо неверно, вы можете изменить глобальные настройки:

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

Полезно знать: если вы работаете на нескольких компьютерах, вам необходимо проверить этот параметр на каждом из них.

Прикрепите письмо к вашей учетной записи GitHub

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

  1. Зайдите в настройки вашей учетной записи
  2. Нажмите «Электронная почта»
  3. Нажмите «Добавить другой адрес электронной почты»
  4. Введите адрес электронной почты и нажмите «Добавить»

Прошлое - это история

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

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

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

9 голосов
/ 05 декабря 2013

Мне пришлось изменить конфигурационный файл репозитория.Запустите из хранилища путь:

> git config --local -e 

и добавьте весь раздел:

[user]
    name = Anna Kowalska
    email = anna.kowalska@wp.pl
1 голос
/ 13 марта 2017

Если вы уже отправили свои коммиты не тому пользователю, вы можете переписать историю, используя этот скрипт из github :

#!/bin/sh

git filter-branch --env-filter '
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

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

0 голосов
/ 15 января 2019

Я только что обнаружил, что мой недавний толчок с автором "Неизвестно".

Я только что сбросил последний коммит на git reset --mixed HEAD~1 и add, commit и push -f на git-bash. Push by GitKraken всегда портит это, но git-bash делает это хорошо. Мое предложение всегда проверять автора перед нажатием git log.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...