昨天,我们的团队成员在我们的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推送到repo的提交。这些信息是否可以收集,或者我运气不好?
感谢。
答案 0 :(得分:1)
我的old answer是关于找到谁进行了强制推送,而不是强迫什么是推力。
如果您有权访问服务器,您应该使用git reflog
找到旧提交的跟踪(推送之前)。
从那里,您可以推断出替换旧分支历史记录的新提交。
请注意,如果您无权访问远程服务器(通常是:github.com),则仍然获取旧分支SHA1(之前强迫推进"穷人的reflog",又称推送活动(GitHub Events API)。
请参阅" Does github remember commit IDs?":在右侧分支上查找最近的推送事件:最后一个是强制的,前一个将代表旧的SHA1提交。