How do I remove all commits by certain author (committed by mistake - such an author should not be visible in the commits history).
I have found some code to rename -
git filter-branch --env-filter '
OLD_EMAIL="[email protected]"
CORRECT_NAME="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
git push --force --tags origin 'refs/heads/*'
Is there some filter not to rename but remove such commits?
To remove the last commit from git, you can simply run git reset --hard HEAD^ If you are removing multiple commits from the top, you can run git reset --hard HEAD~2 to remove the last two commits. You can increase the number to remove even more commits.
Update the author details of historical commitsCheck through the commits in the list, and hit ctrl+x , followed by enter to apply the changes.
First, remove the commit on your local repository. You can do this using git rebase -i . For example, if it's your last commit, you can do git rebase -i HEAD~2 and delete the second line within the editor window that pops up. Then, force push to GitHub by using git push origin +master .
You can do it like this:
Create a new branch based on the commit you want to start with:
git checkout -b <branch-name> <base-commit>
Cherry-pick all commits that don’t have the matching author:
git log --author "<name>" --invert-grep --reverse --format="format:%H" HEAD..master | xargs git cherry-pick
The log
filters out all commits made by the author and then cherry-pick
s them one after one.
Explanation for the parameters (partly quoted from git log
manpage):
--author "name"
--invert-grep
--reverse
Output the commits in reverse order. […]--format="format:%H"
Use a custom format, in this case only the commit hashIf 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