我有一个本地存储库,必须更改最近的57次提交才能更改作者(修复我的电子邮件地址)。我是这样做的:
// mark commits as 'edit'
git commit --amend --author="My Name <current@email.com>"
git rebase --continue
然后我强行将其推送到其Github存储库。在访问“提交”选项卡时,所有修改的提交都将在一天(我推送的日期)下显示:
Commits on Mar 28, 2019
fix endianess when reading chunk id
xxxxxx committed on 26 Jan
其余未修改的内容会在正确的日期显示:
Commits on Apr 23, 2018
ignore packet mocks
xxxxxx committed on 23 Apr 2018
我忘了修改其他内容吗?有办法解决这个问题吗?
编辑:为解决此问题,我修改了在Github's help center上找到的脚本:
#!/bin/sh
git filter-branch --env-filter '
export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
' --tag-name-filter cat -- --branches --tags
然后,正如他们所说的那样:
git push --force --tags origin 'refs/heads/*'
答案 0 :(得分:1)
Git提交包含(除其他信息外)两个日期:作者日期和提交者日期。创建提交时,两者的值相同。如果您修改提交,则提交者日期会更改。 Github使用提交者日期,这就是为什么您修改的所有提交都在您修改它们的日期显示的原因。