注意: 使用该命令后会重新生成hash值。如果该提交已经推到(push)远程服务器,且其他小伙伴已经将该提交拉到(pull)自己的仓库,那么该操作会对你的小伙伴们造成很大困扰。
修改多个提交的 git rebase -i注意: 该操作也是会改写提交历史,所以对于已经推到远程服务器的提交,请慎用该操作。
批量修改提交历史 git filter-branch以下脚本可以批量修改作者信息。
#!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="dennis@top500corp.com" CORRECT_NAME="Dennis" CORRECT_EMAIL="dennis@privateemail.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