我想在Git存储库中创建一个提交,但是提交中与作者关联的名称和电子邮件与通常与我关联的信息不同。
我还想让提交的时间戳与我当前的当地时间不同。
我知道我可以在承诺更改此信息后重写我的项目历史记录。但我还没有做出承诺。有没有办法在我提交时更改此信息?
答案 0 :(得分:7)
要更改提交的作者,请使用git commit --author
:
git commit -m "A commit with a different author" --author="Your name here <yourEmailHere@includeTheAngleBrackets.com>"
要更改提交日期,请使用git commit --date="YYYY-MM-DD HH:MMxm
:
git commit -m "A commit made to celebrate Christmas" --date="2015-12-25 12:00am"
可以合并这些选项:
git commit -m "Ho ho ho" --author="Santa Claus <santa@northpole.org>" --date="2015-12-25 12:00am"
git merge
命令没有--author
和--date
选项。要更改合并命令的日期和作者,请首先定期合并:
git merge other_branch
然后,只要创建了合并提交,就可以在推送更改合并提交的元数据之前使用git commit --amend
:
git commit --amend --author=... --date=...
答案 1 :(得分:1)
您还可以在提交期间设置适当的环境变量。来自文档: [1]
Git提交的最终创建[...]使用这些环境变量作为其主要信息来源,只有在不存在配置值时才会回退。
GIT_AUTHOR_NAME
是“作者”字段中人类可读的名称GIT_AUTHOR_EMAIL
是“作者”字段的电子邮件GIT_AUTHOR_DATE
是用于作者字段的时间戳GIT_COMMITTER_NAME
设置“提交者”字段的人名GIT_COMMITTER_EMAIL
是“提交者”字段的电子邮件地址GIT_COMMITTER_DATE
用于“提交者”字段中的时间戳示例:
GIT_AUTHOR_NAME="foo" GIT_AUTHOR_EMAIL="bar" git commit -m "baz"