你如何作为一个不同的用户提交代码?

我希望能够为脚本做到这一点。 我基本上是在Git中重新创build一些代码的整个版本历史 – 它目前使用不同的版本控制系统。 我需要脚本能够在提交Git的同时保留提交的原作者(和date)。

假设我知道提交作者和更改的date/时间,是否有Git命令,允许我这样做? 我假设有,因为git-p4做了类似的事情。 我只是要求最好的方法来做到这一点。

查看git commit--author选项:

从手册页 :

--author=<author>

覆盖提交作者。 使用标准的AU Thor <author@example.com>格式指定一个明确的作者。 否则<author>被认为是一个模式,用于search该作者现有的提交(即rev-list --all -i --author=<author> ); 然后提交作者从第一个这样的提交中find。

只需添加到:接受的答案中提到的--author选项将只覆盖作者 ,而不是提交的提交者信息。

在大多数情况下,这是正确的行为,但是如果由于某种原因,您也需要手动覆盖提交者信息 ,请使用GIT_COMMITTER_NAMEGIT_COMMITTER_EMAIL环境variables(还有一个GIT_COMMITTER_DATE )。 参见Git-Internals-Environment-Variables

 $ GIT_COMMITTER_NAME="New Name" GIT_COMMITTER_EMAIL="name@email.com" git commit --author="New Name <name@email.com>" 

这会使提交看起来像是由指定的用户创作提交的。