修改 ~/.gitconfig
文件中的 user.name
, user.email
.
将下面的脚本文件 git-user-change.sh
放在需要修改的项目的上一层文件夹中, 脚本的源码中需要修改对应的用户名和邮箱.
在项目根目录下执行 sh ../git-user-change.sh
便开始自动化重写所有脚本能匹配到的提交信息了. 拥有条件判断的此脚本, 最大的好处便是, 不会覆盖掉团队协作项目中, 他人的提交信息.
下面这条命令会将项目 Git 所有历史里删除对 src.zip 的记录, 整个 .git 文件夹会轻很多. git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch ./src.zip' --prune-empty --tag-name-filter cat -- --all
强制更新 git push origin --force
, 如果需要授权, 在 github 上修改 SSH 公钥.
git-user-change.sh
的代码, 保存后执行上面的命令, 其中 if
中的判断条件是原来的邮箱, then
中是现在的名字和邮箱.#!/bin/sh git filter-branch --env-filter ' an="$GIT_AUTHOR_NAME" am="$GIT_AUTHOR_EMAIL" cn="$GIT_COMMITTER_NAME" cm="$GIT_COMMITTER_EMAIL" if [ "$GIT_COMMITTER_EMAIL" = "willsnowdev@gmail.com" ] then cn="shengwei.xu" cm="shengwei.xu@qq.com" fi if [ "$GIT_AUTHOR_EMAIL" = "willsnowdev@gmail.com" ] then an="shengwei.xu" am="shengwei.xu@qq.com" fi export GIT_AUTHOR_NAME="$an" export GIT_AUTHOR_EMAIL="$am" export GIT_COMMITTER_NAME="$cn" export GIT_COMMITTER_EMAIL="$cm" '
参考文章