昨天,我们的团队成员在我们的Bitbucket存储库中做了一个git push --force
。我知道它是谁,但我想知道是否有可能收集哪些提交被强制推入存储库。
我正在寻找git log / history的信息是这样的 -
+ 1951097...9b070f0 tower -> origin/tower (forced update)
当我试图进入我的本地分支并在强制推送后遇到合并冲突时,我看到了这条消息,但除了那次之外,我还没有能够在其他任何地方看到它。有没有一个地方我可以看到所有提交(特别是那些(forced update)
标签旁边的那些?)运行Git reflog
和git log
似乎没有返回此信息。
我看到这篇文章(这很有趣)是类似的 - How can I find out who force pushed in git?
而不是寻找特定的人(就像前一个问题中的提问者),我只是在寻找在本地克隆它后用--force推入回购的提交。这些信息是否可以收集,或者我运气不好?
谢谢。
我的old answer是关于找到谁做了强制推动,而不是关于什么是强制推动。
如果您有权访问服务器,您应该使用git reflog
找到旧提交的跟踪(在推送之前)。
从那里,您可以推断出替换旧分支历史记录的新提交。
请注意,如果您无法访问远程服务器(通常是:github.com),您仍然可以使用“穷人的reflog”获取旧分支SHA1(强制推送前的分支),即推送事件(GitHub Events API) )。 请参阅“Does github remember commit IDs?”:在右侧分支上查找最近的推送事件:最后一个是强制的,前一个将代表旧的SHA1提交。