在*提交之前更改一个特定提交的名称,电子邮件和/或日期

时间:2015-12-03 18:08:58

标签: git

我想在Git存储库中创建一个提交,但是提交中与作者关联的名称和电子邮件与通常与我关联的信息不同。

我还想让提交的时间戳与我当前的当地时间不同。

我知道我可以在承诺更改此信息后重写我的项目历史记录。但我还没有做出承诺。有没有办法在我提交时更改此信息

2 个答案:

答案 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"