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