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