情况如下:远程Linux服务器上有一个裸仓库(repo.git
目录)。在过去的某些时候(点A),人们一直按照“裸和非裸”指令的方式使用它:在本地机器上编辑代码(在包含.git
目录的仓库中)并将其推送到远程服务器。但后来他们完全停止使用Git并切换到直接在服务器上编辑代码。
昨天(B点)我从远程服务器git clone
,在代码中做了一些更改,提交然后推送到服务器。事实证明,我的git clone
步骤下载到我的机器上的旧代码(在A点是最新的)。然后我将旧代码推送到服务器,然后来自B点的代码被A点的代码覆盖。
由于我从未使用过个人(一人)项目的Git,我不知道(并且诚实地挣扎)是否有任何方法可以恢复服务器上的B-code代码。
没有git
机制来恢复未提交给git
的版本。如果有单独的备份,则可以从备份还原文件。 (如果没有单独的备份...为什么不备份服务器?)
一方面,这是为什么我不喜欢使用git
进行部署的另一种变体。另一方面,如果你打算使用git进行部署,那么需要理解的是除了git之外什么都不应该写入git部署的文件夹,因为这样做只是要求你的工作被覆盖。简而言之:如果一个人的变化很重要,那么为什么人们不希望它们与git历史保存在一起呢?