如何判断Git作者是否更改了帖子提交? (例如,如果历史被重写)

时间:2015-04-28 15:57:30

标签: git

如果有人进入git并重写提交时的历史记录以更新作者和日期信息,有没有办法找到有人运行此历史更新命令?

例如:开发人员Joe检查代码。 Joe不希望与该签入相关联,因此他去更新历史记录以显示Jane实际签入了代码。我可以发现这个改变是由乔做的吗?

是否存在所有命令运行的git历史记录?

编辑:我应该注意到我确实发现并尝试了git reflog,如下所示:History or log of commands executed in Git,但它似乎没有显示所有命令,只显示某些命令。

1 个答案:

答案 0 :(得分:1)

如果您使用git log运行--format=fuller之类的命令,您会看到两个不同的日期:

commit 8140a5fb82480b585c9fe3be320fb2b73cd607a3
Author:     Matthieu Moy <Matthieu.Moy@imag.fr>
AuthorDate: Tue Apr 28 18:25:22 2015 +0200
Commit:     Matthieu Moy <Matthieu.Moy@imag.fr>
CommitDate: Tue Apr 28 18:25:35 2015 +0200

使用git commit创建提交时,Author和Commit是相同的。但是当您重写历史记录时,如果Commit对应于上次重写或修补程序应用程序,则不会修改Author字段。另一种情况是作者与提交不同的是你应用补丁(git send-email + git am)。

但是,如果恶意用户想要重写“作者”字段,他或她可以这样做,之后就没有可靠的方法可以找到。