我在一家小型的开发公司工作,我们在github中使用私有存储库来保存我们的代码。我们的工作流组织方式是每个开发人员都可以在本地存储库上工作并进行频繁的提交,但只在代码工作时将更改推送到github。当功能/更改/修复准备好生产时,我们在生产服务器上使用git pull来提取github的更改。就在几分钟前,我们发现与生产服务器相比,github有56个旧版本。起初,我们认为我们中的一个人直接将他的工作合并到生产而不是在本地进行合并并将结果推送到github,但是生产盒上的日志和命令历史似乎表明只使用了pull命令。怎么可能导致github完全丢失56个修订版?
答案 0 :(得分:10)
您团队中的任何人都使用git push -f
作为其工作流程的一部分吗?
我最好的猜测是,某人是强迫推进并且没有引入某人的提交。在没有强制推动的情况下,使用Git很难丢失数据,但是如果你在不知道后果的情况下强行推送,那么很容易认为有人在实际上自己删除数据时“丢失”数据。