批量修改git commit的作者和邮箱
git filter-branch -f --env-filter '
OLD_EMAIL="dogsii@outlook.com"
CORRECT_NAME="newname"
CORRECT_EMAIL="new@email"
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
修改备注
git rebase -i HEAD~27
- 将修改的那一条 前缀pick改为 e(x修改) 或者 s (合并到前一个)
输入
git commit --amend
进入vim界面, 按i进入编辑,编辑好后, 按Esc 输入:wq 保存并退出
修改时间
GIT_COMMITTER_DATE="2022-07-05T13:57:17" git commit --amend --date="2022-07-05T13:57:17"
输入
git rebase --continue
继续使用
git commit --amend
修改,直到所有的选择的都修改完成,显示
Successfully rebased and updated refs/heads/master.
完成修改
如果遇到冲突
You must edit all merge conflicts and then
mark them as resolved using git add
使用
git add -A
解决