如何跟踪GIT力推?你能丢失/删除提交吗?

问题描述 投票:2回答:2

这是我们作为一个团队正在努力的回购:https://github.com/hmcts/prd-pui-manager/pulls?q=is%3Apr+is%3Aclosed

我们很难理解为什么当我们拉下master时,我们在提交日志中看不到PR 45,46。 https://github.com/hmcts/prd-pui-manager/pull/45 https://github.com/hmcts/prd-pui-manager/pull/46

我跑了:git reflog,看看是否有任何推力,但没有显示任何东西。

PR 48:https://github.com/hmcts/prd-pui-manager/pull/48删除PR 45,46,如果是的话怎么样?

有没有办法调试强制推送到掌握?

我希望我可以得到这方面的帮助,因为蜜蜂需要一段时间才能理解如何调试这些流程。我已按照以下步骤尝试调试:

  • 恢复每个头并审查代码 - 没有

当PR 48合并时,它还有PR 45更改以返回丢失的代码,但我想弄清楚我们是如何丢失两个PR的

git merge git-merge rebase
2个回答
1
投票

GitHub审计跟踪

GitHub有一个审核日志来解决这些问题:

文档:https://developer.github.com/v3/activity/events/

在你的情况下,分析https://api.github.com/users/hmcts/events可能会揭示你在寻找什么。我在PushEventrefs/heads/master浏览了PullRequestEvents。我没有找到你的具体答案,但通过一些挖掘你可能能够弄明白。

丢失提交

要回答问题的其他部分,强制推送是我知道丢失提交的唯一方法。


0
投票

要解决此问题,您仍然拥有分支,因此您可以将它们合并到master中以获取更改。

对于未来,我建议执行以下内容:

  • 永远不要强制主人或任何其他共享分支,
  • 只有当开发人员知道他/她所做的事情时,才能强制推送属于单个开发人员的分支

此外,如果您不再拥有分支,您可以查看开发人员的计算机,比较日志和reflog,并从不同的地方重建您的分支(例如,dev 1将在他的reflog中包含旧版本,所以你可以拉出当前的主机,并合并这个旧版本,已经删除,dev 2将有强制推送版本,依此类推)。这是一项繁琐的任务,但这是恢复丢失数据的最佳方法。

© www.soinside.com 2019 - 2024. All rights reserved.