由2位作者推动提交

时间:2019-05-29 06:09:26

标签: git

我在本地系统上设置了工作ssh密钥。现在我也尝试将项目推送到我的个人github帐户。

我在提交时更改了提交的作者。 在git log上,我可以看到新作者。

commit 73344e555da22600723a8302b7d476787f2668e3 (HEAD -> master)
Author: A G <laun.biz@gmail.com>
Date:   Wed May 29 00:35:41 2019 +0530

    First Commit

我使用用户名和密码推送了它。

git push https://username:password@github.com/Laun/laun-api.git master

现在,当我去检查Github时,我明白了,

Laun and agupta-at-wellthie First Commit

Laun是我的个人用户名, agupta-at-wellthie是我的工作帐户用户名。我做错了什么?

1 个答案:

答案 0 :(得分:5)

  

我在提交时更改了提交的作者。

很好-但是您没有更改提交器

每个提交都没有一个,但是有两个 “谁提交了该提交,何时”: author ,您可以用--author覆盖它。 git commit committer 中,该命令没有明显的命令行选项可以覆盖它。

可以通过六个环境变量分别覆盖所有六个部分:

  • GIT_AUTHOR_NAME设置作者行的名称部分
  • GIT_AUTHOR_EMAIL设置作者行的电子邮件地址部分
  • GIT_AUTHOR_DATE设置作者行的日期和时间戳记部分
  • GIT_COMMITTER_NAME设置提交程序行的名称部分
  • GIT_COMMITTER_EMAIL设置提交者行的电子邮件地址部分
  • GIT_COMMITTER_DATE设置提交者行的日期和时间戳记部分

如果不要使用环境变量覆盖各个部分,则它们默认为:

  • 作者:您,或者来自--author,或者来自您在使用-c-C引用的提交中的作者。
  • 提交人:你。

在这种情况下,“您”的意思是:

  • user.name中的设置,加上
  • user.email中的设置,加上
  • 计算机时钟报告的当前日期和时间。

因此,一种覆盖新提交中所有内容的方法(一种没有从现有提交中复制信息的方法)是通过user.name或通过命令设置user.emailgit config行:

git -c user.name='A U Thor' -c user.email='thor@example.com' commit

如果添加--author='Someone Else <else@example.com>',则此处的--author部分将覆盖作者行,而提交者行将来自两个-c部分(以及当前时间戳)。 / p>

如果要覆盖提交者时间戳,唯一的机制是使用GIT_COMMITTER_DATE或更改计算机的时钟(可以满足要求,当然环境变量更容易,更安全,因为它不会打扰。其余的计算机。)