UserB在13天前在Github上提交UserB的意思是什么?

我有兴趣知道两个用户中的哪一个在github列出这两个文件时更改了文件。 然而,gitlogging只包含UserA。

用户A是实际进行更改的人。 UserB是将这些更改提交给此分支的人员。 即如果UserA提交对branch1的更改,UserB将向Branch2提交更改,并将branch1更改为branch2。 现在,branch1中的最高提交将显示UserA已经用UserB提交了这些更改。

编辑:这主要发生在rebasing和樱桃采摘,因为作者和提交者可以在这些过程中不同。

@ venkatKA的答案是准确和描述性的,但我想我会添加一些细节。

git cat-file -p HEAD可以用来输出关于提交的信息

 tree d85ed3c3a055c95445898a5119ea0a532459fdsf parent 0b6ed951b2c04b4134c91ffa053b4330edfdffc1 author AuthA <autha@email.com> 1487356245 +0000 committer AutbB <aubt@email.com> 1487356245 +0000 

如果你想修复历史提交者(例如,如果你正在改变你的身份),那么你可以使用:

 git filter-branch -f --tree-filter "GIT_COMMITTER_NAME='New Author'; GIT_COMMITTER_EMAIL='New Author'" 

关于改变历史的标准评论以及为什么修正主义是一个坏主意。

造成这种情况的另一个原因是使用$GIT_AUTHOR_NAME$GIT_AUTHOR_EMAIL envvariables。

当这些variables被设置时,无论在本地设置了什么user.nameuser.emailconfiguration值,它们都会覆盖每个前进提交的作者部分。 在这种情况下,当你打git cat-file -p HEAD ,作者显示$GIT_AUTHOR_NAME值,提交者显示本地user.nameconfiguration的值。

因此,您需要删除在.bashrc.zshrc中导出这些variables的行,或者如果要保留这些行,但不希望发生这种情况, unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL在运行git commit之前插入未unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL