I am using this script found at this link to edit author info across all commits.
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="[email protected]"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="[email protected]"
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
However, I am getting the following error(warning?):
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f
I checked the log too. The author info didn't change. What am I doing wrong here?
Update: As mentioned by @elpiekay, the -f
flag made the script work.
But can anyone explain the error log itself? Why does it mention about backup ? I never made any backup before (unsure what backup is being referred in the error log)
The git commit --amend --reset-author --no-edit command is especially useful if you created commits with the wrong author information, then set the correct author after-the-fact via git config .
To change the most recent commit message, use the git commit --amend command. To change older or multiple commit messages, use git rebase -i HEAD~N .
Actually, a better practice is to:
You can instead used right now its possible successor: newren/git-filter-repo
(in Python), and its example section:
cd repo
git filter-repo --mailmap my-mailmap
with my-mailmap
:
Correct Name <[email protected]> <[email protected]>
That would replace the author name and email of any commit done by anyone with <[email protected]>
See git mailmap
for the exact syntax of that mapping file.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With