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.name
和user.email
configuration值,它们都会覆盖每个前进提交的作者部分。 在这种情况下,当你打git cat-file -p HEAD
,作者显示$GIT_AUTHOR_NAME
值,提交者显示本地user.name
configuration的值。
因此,您需要删除在.bashrc
或.zshrc
中导出这些variables的行,或者如果要保留这些行,但不希望发生这种情况, unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL
在运行git commit之前插入未unset GIT_AUTHOR_NAME && unset GIT_AUTHOR_EMAIL
。