我们的 GitHub 存储库存在问题。我将解释我们的工作流程:
开发人员从主线分支创建功能/错误修复分支。他们拉取他们的更改以将其合并回来。他们可能会从主线分支重新设置基础,以便在他们工作时从中获取最新更新。在 rebase 之后,他们将 --force 推送到他们的功能分支上。
最近使用 GitHub Web 界面自动合并了两个拉取请求。随后 - 在请求合并后大约两天 - 发现这些提交中的更改不在代码中。历史上没有任何迹象表明这些更改被还原或覆盖。合并本身不会出现在提交历史中,并且单个提交本身也不会出现。但是拉取请求已成功合并。缺少的提交之一不再可用于樱桃挑选。当我们尝试时,我们会收到一个致命的 - 坏对象消息。
我们怀疑已经发生了一些历史改写。我们如何才能发现以及如何防止这种情况发生。我们的工作流程是否存在根本性的问题?