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