my author name in all my commits is coming up as unknown https://github.com/freeenergy/Teacher-Login-Validation-Module
did this
$ git config
Even better than running git config
, you can edit your ~/.gitconfig
file directly. Look and see if there's a section for [user]
with the relevant information. For example, my ~/.gitconfig
has this...
[user]
name = Bob Gilmore
email = me@mydomain.com
(There's no space in front of the [user]
, and single tabs in front of the name and email labels)
If it doesn't have those set properly, just go ahead and edit the .gitconfig file by hand.
I was having the issue of Github not properly linking my commits to my account. If you believe your email is correct, you should ensure that email is also in the Github settings for your account, as per this help page. The last section of caching is also good to note.
GitHub uses the email saved in a commit's header to link the commit to a GitHub user. If you find your commits are being blamed on another user, or not linked to a user at all, you should check your settings.
Good to know: commit blame does not grant access to a repo. If you are seeing commits blamed on a user you do not know, don't worry. The user does not have access to your repo unless you've explicitly added them as a collaborator on that repo or to a team that has access to the repo.
In order for GitHub to properly blame you for your commits, make sure your git email setting is correct and matches an email attached to your account.
To check your git setting, run this command:
$ git config user.email
# you@there.com
If this email is not correct, you can change the global setting:
$ git config --global user.email "me@here.com"
Good to know: if you work on multiple machines, you will need to check this setting on each one.
If your email is not attached to your GitHub account you will need to add it for your future commits to be blamed correctly.
If you used an invalid email, or an email that's already attached to another account, then your previous commits will not be blamed correctly. While git does allow you to modify the repo's history and correct this, it is strongly discouraged to change commits which you've pushed to a remote repo.
In the case where your previous commits used the correct email, after you add the email to your account they will start to link. However, it may take some time for the old data to fall out of the server's cache before this happens.
Moving forward, if your settings match then all your new commits will be blamed on you and linked to your account.
I had to change the repository config file. Run from repository path :
> git config --local -e
and add the whole section :
[user]
name = Anna Kowalska
email = anna.kowalska@wp.pl
I just found my recent push is with author "Unknown".
What I just did was to reset the last commit by git reset --mixed HEAD~1
and add
, commit
, and push -f
by git-bash
. Push by GitKraken always mess this up, but git-bash
does it well. My suggestion is always check the author before push with git log
.
In case you did already push your commits with a wrong user, you can rewrite the history using this script from 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
Be aware of the effects a history rewrite has! If you are on a private branch you will propably be fine. On branches that are shared with other users you will need to coordinate with every other user and do a fetch on each clone. You need to decide if it's worth the effort. Have a backup!