如何修改多个Git提交的作者/提交者信息并保留原提交时间戳?
批量修改Git提交作者信息并保留原时间戳
你之前使用的命令中,--reset-author参数会强制将作者提交时间重置为当前时间。要在修改作者信息的同时保留原时间戳,需要调整命令逻辑,手动指定作者信息并复用原提交的时间:
执行命令
git rebase -r --root --exec "GIT_COMMITTER_DATE=\"$(git show --format=%cd HEAD)\" git commit --amend --no-edit --author=\"你的名字 <你的正确邮箱>\""
命令说明
git show --format=%cd HEAD:提取当前正在处理的提交的原时间戳GIT_COMMITTER_DATE=...:将提交者时间设为原时间,避免被重置为当前时间--author="你的名字 <你的正确邮箱>":直接替换为正确的作者姓名和邮箱,不会触发时间重置--no-edit:保留原提交的说明文字,无需手动编辑
注意事项
- 务必替换命令中的
你的名字和你的正确邮箱为实际信息 - 若提交已推送到远程仓库,修改完成后需要执行
git push --force强制推送,操作前请和团队成员沟通,避免冲突 - 如需修改特定范围的提交,将
--root替换为目标提交的父哈希(比如修改某提交之后的所有记录,用git rebase -r <目标提交哈希>^ --exec ...)
内容的提问来源于stack exchange,提问作者dreambold
相关产品推荐
相关产品推荐

