在主服务器上发生文件系统错误后,恢复git存储库的最快路径是什么?如何在致命的文件系统错误后恢复Git?
想象一下,您的OSS项目的中央服务器出现故障,并且所有提交两天后恢复后都会丢失。你怎么让他们回来?只需在所有客户端上调用“git push”就足够了吗?或者还有什么我必须考虑的?
在主服务器上发生文件系统错误后,恢复git存储库的最快路径是什么?如何在致命的文件系统错误后恢复Git?
想象一下,您的OSS项目的中央服务器出现故障,并且所有提交两天后恢复后都会丢失。你怎么让他们回来?只需在所有客户端上调用“git push”就足够了吗?或者还有什么我必须考虑的?
每个仓库都还“主库”(这是“主”只约定)的备份,以便从该做的最新git fetch
或git pull
应该是所有需要,达到其状态信息库中的git push
, 当然。你只需要照顾钩子等,但如果你说只有最后两天的承诺失败了,那么这些承诺可能不会受到伤害。
A git pull
然后git push
应该足够了。
或者,git push -f
将用本地副本强制更新服务器,但这会给其他人带来问题(如果有多个提交者)。
让我们知道你是否遇到任何进一步的问题或错误。
我想可能是更好的服务器上创建一个新的回购协议:
% ssh [email protected]
% mv /path/to/repo /path/to/repo.old
% mkdir /path/to/repo
% cd /path/to/repo
% git init --bare
然后从你的所有不同的克隆推。我的想法是,这样可以避免任何可能存在于旧回购中的损坏文件,并且应该不会有任何损失,前提是你们都在自己的克隆上工作,并且没有人在服务器回购站中搞乱。
+1为钩;我明天就申请 - 今天的选票:对不起。 – 2009-02-16 10:48:39
@Bombe:恭喜你,你刚刚通过了5000分:) – 2009-02-17 10:46:01