作者,提交者和推者在Git中可能是不同的人,但是git没有将推送者的信息存储在日志中。
那么,我怎么得到它?
答案 0 :(得分:7)
你没有。
upstream repo没有对谁提供提交做出任何假设:它可以通过电子邮件,在USB密钥上复制的差异补丁,以及其他 various transfer protocol 。
其中一些协议(ssh,https)可能在其日志中包含您要查找的信息,但是:
gitolite-admin
回购邮件中注册的name of the public ssh key也可以是您想要的任何内容,与真实姓名无关。正如Linus提到的那样(在“Why do some open source projects do not accept pull requests, but emailing patch files only?”中):
由于github身份是随机的,我希望拉取请求为 a signed tag ,以便我可以验证相关人员的身份。
因此,如果您想要推送一些提交,以保证所有仓库的完整性,您可以在正在推送的HEAD
上制作并签署一个标签,以便上游回购把你视为,不完全是“推动者”,而是确认推动了什么的那个
答案 1 :(得分:5)
如果通过SSH进行推送,您可以使用USER
环境变量。 (当然,这也适用于本地推送。)当然,这取决于用于SSH登录的用户是否与系统的不同用户不同 - 例如,gitolite不是这种情况。 (但是,gitolite将定义GL_USER
环境变量以标识推送器。)对于HTTP,您可以尝试REMOTE_USER
环境变量。
更新:一般来说,与提交的作者和提交者相比,这些信息并不十分有趣 - 例如,GitHub显示特定用户推动......