我发现我没有在Git中配置user.name
变量:git config user.name
不打印任何内容(也包含--system
或--global
或--local
)。
我的全名也不包含在env
的输出中,只有我的登录名,这是不同的。
尽管如此,我的所有提交都归功于我真实的名字和姓氏。
Git是如何知道的?
澄清:
我的全名包含在GIT_COMMITTER_IDENT
命令显示的GIT_AUTHOR_IDENT
和git var -l
变量中。 (我想我的问题就是:它是如何实现的?)
我说的是本地存储库。但是我在Github克隆的同一台计算机上有其他存储库。
我正在使用Debian系统。
我的全名包含在getent passwd
。
答案 0 :(得分:2)
除非在Git配置或环境变量中指定,否则Git将尝试在密码文件中查找用户名。查找在fmt_ident
函数中执行。
答案 1 :(得分:1)
可能是您设置了环境变量:
Git提交对象的最终创建通常由 git-commit-tree,,它使用这些环境变量作为主要变量 信息源,只有在符合要求时才回退到配置值 这些都不存在。
GIT_AUTHOR_NAME是“作者”字段中的人类可读名称。
GIT_AUTHOR_EMAIL是“作者”字段的电子邮件。
GIT_AUTHOR_DATE是用于“作者”字段的时间戳。
GIT_COMMITTER_NAME设置“提交者”字段的人名。
GIT_COMMITTER_EMAIL是“提交者”字段的电子邮件地址。
GIT_COMMITTER_DATE用于“提交者”字段中的时间戳。
EMAIL是user.email的后备电子邮件地址 配置值未设置。如果没有设置,Git会回归 系统用户名和主机名。
来源:https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables