识别运行“git reset”命令的用户

时间:2015-02-20 09:52:07

标签: git git-merge git-reset

我最近遇到了一个问题。其中一位开发人员在分支机构中进行了一些更改。当他检查分支日志(git checkout branch; git log)时,提交(例如, abc )显示但是当他检查日志中的文件(git log <file_name>)时,作为给定提交( abc )的一部分,关联的提交( abc )未显示;相反,旧的提交ID(例如, xyz )就在那里。

当问题出现时,我尝试使用git log --follow <file_name>检查文件的完整历史记录,以确保文件是否已重命名为其当前名称。 git log --follow <file_name>的输出实际上显示了git log <file_name>命令输出中缺少的提交ID( abc )。在询问开发人员文件是否已重命名时,我发现已经为该文件执行了 no 重命名。这令人困惑,我被困住了,因为我无法弄清楚发生了什么。后来,事实证明,另一个开发人员在推送他的代码时遇到了合并冲突,而不是解决它,他只是做了一个git reset .并且HEAD被转移了。

问题1)我有没有办法弄清楚其他开发人员在他的机器上执行的git reset命令?仅供参考,我有管理员访问Git。

问:2)我们有什么方法可以控制这些事情的发生?我不确定是否可以使用hook来控制它,因为这不是'push'命令。这是在推送之前完成的事情。如果我弄错了,请纠正我。我在这里看到的最大问题是每个开发者都有权提交,我觉得这是不对的。我觉得,即使限制它也不能万无一失,但它肯定会显着降低这种情况。有什么建议?

0 个答案:

没有答案