gpt4 book ai didi

git - 如何更改多个提交的作者和提交者姓名/电子邮件?

转载 作者:太空狗 更新时间:2023-10-29 14:21:54 28 4
gpt4 key购买 nike

如何更改一系列提交的作者?

最佳答案

注意:此答案会更改 SHA1,因此在已推送的分支上使用它时要小心。如果您只想修复名称的拼写或更新旧电子邮件,Git 可让您在不使用 .mailmap 重写历史记录的情况下执行此操作。 .参见 my other answer .

使用 rebase

首先,如果您还没有这样做,您可能想在 git-config 中修复您的名字:

git config --global user.name "New Author Name"
git config --global user.email "<email@address.example>"

这是可选的,但它也将确保重置提交者名称,假设这是您需要的。

要使用 rebase 重写一系列提交的元数据,请执行

git rebase -r <some commit before all of your bad commits> \
--exec 'git commit --amend --no-edit --reset-author'

--exec将运行 git commit重写每次提交后的步骤(就像您重复运行 git commit && git rebase --continue)。

如果您还想更改您的第一个提交(也称为“root”提交),则必须添加 --root到 rebase 调用。

这会将提交者和作者都更改为您的 user.name/user.email配置。如果您不想更改该配置,可以使用 --author "New Author Name <email@address.example>"而不是 --reset-author .请注意,这样做不会更新提交者 - 只会更新作者。

单一提交

如果您只想更改最近的提交,则不需要 rebase 。只需修改提交:

 git commit --amend --no-edit --reset-author

整个项目历史

git rebase -r --root --exec "git commit --amend --no-edit --reset-author"

对于较旧的 Git 客户端(2020 年 7 月之前)

-r,--rebase-merges对你来说可能不存在。作为替代,您可以使用 -p .注意 -p存在严重问题,现已弃用。

关于git - 如何更改多个提交的作者和提交者姓名/电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50813986/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com