【发布时间】:2013-07-04 09:41:00
【问题描述】:
在我们的项目(托管在 GitHub 上)中,每隔一段时间就会有人不小心强制推送 master。没有人知道是否这样做,我想知道是谁做的,背后是什么错误配置的工具或坏习惯。
那么问题来了,如何识别强制推送的用户呢?当我拉动时,我会看到如下内容:
# git pull --prune
(.....)
+ 4c0d44c...138b9ed master -> origin/master (forced update)
但138b9ed 只是origin/master 中的最新提交,任何人都可能在强制推送后提交;甚至有可能原力推动者本人并没有做出任何事情,只是重新定位,所以他的名字甚至没有出现在作为作者的起源/大师历史的重写部分中。
我也试过git reflog origin/master,但它只是给出了相同的信息:有一条记录说git pull --prune (forced update),提交ID为138b9ed,但这将再次将最后一个提交者提供给master,而不是提交者力推。在源服务器上运行 git reflog master 可能会有所帮助,但 GitHub 不会为您提供这种访问 AFAIK。
有没有可靠的方法来找出推送的来源(以及时间)?
【问题讨论】:
-
您现在可以查看谁强行推送了您的分支(仅在 GitHub 上):请参阅 my answer below