📜  git change commit author - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:15:16.485000             🧑  作者: Mango

Git Change Commit Author - Shell/Bash

有时候,你可能需要更改提交的作者信息,例如当你使用了别人的电脑或者是更改了自己的用户名和邮箱地址。在这些情况下,你可以使用Git命令来更改已经提交的作者信息。

以下是可以使用的Shell/Bash脚本,用于更改提交的作者信息。

#!/bin/sh

# 设置原始作者信息
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"

# 从 Git 历史记录中查找旧的提交,并重写它们的作者
git filter-branch --env-filter '
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 -f -- --branches --tags

在这个脚本中,你需要将 OLD_EMAIL 替换成你之前使用的邮件地址,CORRECT_NAME 替换成正确的名字,CORRECT_EMAIL 替换成正确的邮件地址。

运行脚本之后,它会从 Git 历史记录中查找旧的提交,并且使用新的作者信息来重写它们。

注意:在使用这个脚本之前,请确保你已经备份了你的代码库。一旦重写了提交记录,它们将无法恢复。

以上就是如何使用Shell/Bash脚本来更改已经提交的作者信息。希望这篇文章对你有所帮助!