统一Git提交信息

github上的一个代码库 经常切换git提交的用户信息,没注意到就变化了。问了Chatgpt给出的解决方案。记录一下~

 

第一步:执行该脚本(提交身份信息自行修改)

git filter-branch --env-filter '

# ✅ 目标统一信息
CORRECT_NAME="xxxx"
CORRECT_EMAIL="xxxx@gmail.com"

# ✅ 旧的提交身份信息列表
OLD_EMAIL_1="xxxx1"
OLD_NAME_1="xxxx1"

OLD_EMAIL_2="xxxxx2"
OLD_NAME_2="xxxxx2"

# --- 修改提交者信息 (committer) ---
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL_1" ] || [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL_2" ]; then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi

if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME_1" ] || [ "$GIT_COMMITTER_NAME" = "$OLD_NAME_2" ]; then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi

# --- 修改作者信息 (author) ---
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL_1" ] || [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL_2" ]; then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi

if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME_1" ] || [ "$GIT_AUTHOR_NAME" = "$OLD_NAME_2" ]; then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi

' --tag-name-filter cat -- --branches --tags

 




执行脚本后;

 

第二步:强制推送覆盖远程记录:

 
git push origin --force --all
git push origin --force --tags

 



posted @ 2025-11-06 16:49  rhyswang  阅读(4)  评论(0)    收藏  举报