github每一次commit都有一个peterborkuti,这人是谁?

我在自己的github项目上每一次git push,登录github后都能看到有相应的peterborkuti的commited记录,这人是什么角色,为啥不是我自己?

我能确认,所有commit都是我自己push的,并且项目到目前也只有我自己,没有其它人参与。

你的 git 邮件地址配错了?

邮件地址是截图上的Author后面的的peter@debian ?
这个好像是自动生成的。
我用git config命令没有返回任何信息,是不是有其它命令?

我检查了github账号的邮件地址,是我的163邮箱地址,不是peter@debian。
用git config命令重新设置一下邮箱地址,能不能修正这个问题?

和 github 无关,你需要用 git config 自己重新设置邮件地址,但是已经提交过的就没办法了。

当然,你可以修改旧提交里的邮件地址然后 force push。

说实在的,这都是 git 使用的基础中的基础,为什么不去看看手册? 并无恶意,只是非常建议至少看一眼 git 官方提供的文档,可以节约大量时间,甚至还有中文翻译。

1 个赞

peter@debian 是你机器上账户的名字,不知道为什么会设置成这样。按理说 git 会要求用户第一次使用必须配置用户名和邮件地址。

另外,你也可以将邮件地址设置为 github 提供的 noreply 邮箱地址,这个也可以被正确识别。

需要注意的是,git config 是存储库级别设置,git config --global 是全部设置。

https://git-scm.com/book/zh/v2/起步-初次运行-Git-前的配置

1 个赞

peter@debian是不是我初次使用git时设置的?想不起来了,当时好像没太在意。

不过那个commit历史记录的用户,确实有点诡异,没想明白是怎么弄的。

git config能修正这个问题的后续就好,历史记录就不管了。

关于git这个工具,属于临时起意测试一下看github.io能不能用,没真打算用它。只不过结果确实不错,能用。如果测试结果不理想,我应该会直接删除项目,也就不会关心commit的用户信息。

后续应该会经常使用git,确实有必要按你说的,好好看一下官方手册。你给的链接,比我在百度上搜索的结果好用很多。

估计是有个倒霉蛋,也叫 peter,用 debian 的同时犯了同样的错误…

因为 git 识别用户全靠 email 和 用户名。当然,还可以用 gpg 给提交签名,不过这是另一个话题了。

GitHub 使用你的提交电子邮件地址将提交与你的 GitHub.com 关联。


github 账户其实提供了一个邮件地址,在 email 设置里可以看见,参见下面链接的 noreply 部分。如果不想泄露私人邮件地址,可以用这个作为 git 提交的 email,也可以正确显示提交用户。

如果想将个人电子邮件地址设为私密,则可以使用 GitHub 的 noreply 电子邮件地址作为提交电子邮件地址。 要将 noreply 电子邮件地址用于从命令行推送的提交,请在 Git 中设置提交电子邮件地址时使用该电子邮件地址。 要将 noreply 地址用于基于 Web 的 Git 操作,请在 GitHub 上设置提交电子邮件地址并选择“对我的电子邮件地址保密”。

如果会在 windows 和 *nix 平台编辑代码,需要注意一个问题是换行符。这不是 git 的问题,而是 windows 使用 \r\n 作为换行,*nix 使用 \n 作为换行。有些软件对于换行很敏感(比如 autoconf 的 m4 宏,全世界仅此一处使用),有些则不然(比如 HTML?)。

如果需要考虑跨系统协作,有一种最佳实践是,windows 平台开启 git 的 autocrlf 功能为 true,其它平台不变。这样 windows 在 checkout 时会自动转换换行为 \r\n,commit 时自动转换为 \n,保证存储库里只有 \n。这样就不会因为只是在 windows 上保存了一下文件,整个文件都显示变动(因为存储库里 \r\n\n 混用了)。

按理说这个不会被 github 识别才对。github 上显示的提交你本地找得到吗?随便挑一个 git show xxx 看看?

这就是为什么我不用百度。

换行也是问题,这还真没遇到过。这个解决方案我保存一下,省得以后到处找。

截图是最后一次commit的git show输出:

用git config设置用户名和邮箱后,刚才git push了一下,然后在github页面上查看commit记录,commit用户信息已经修正了。

不过,commit记录上显示的用户名不是git config设置的用户名,而是github账号的用户名,这应该是由于git config邮箱与github账号邮箱一致的原因。

好吧,看来就是那人把自己的 github 邮箱设置成那个了……

他和我一样不看官方git手册……