2009-02-16 85 views
3

在主服务器上发生文件系统错误后,恢复git存储库的最快路径是什么?如何在致命的文件系统错误后恢复Git?

想象一下,您的OSS项目的中央服务器出现故障,并且所有提交两天后恢复后都会丢失。你怎么让他们回来?只需在所有客户端上调用“git push”就足够了吗?或者还有什么我必须考虑的?

回答

8

每个仓库都还“主库”(这是“主”只约定)的备份,以便从该做的最新git fetchgit pull应该是所有需要,达到其状态信息库中的git push , 当然。你只需要照顾钩子等,但如果你说只有最后两天的承诺失败了,那么这些承诺可能不会受到伤害。

+0

+1为钩;我明天就申请 - 今天的选票:对不起。 – 2009-02-16 10:48:39

+0

@Bombe:恭喜你,你刚刚通过了5000分:) – 2009-02-17 10:46:01

2

A git pull然后git push应该足够了。

或者,git push -f将用本地副本强制更新服务器,但这会给其他人带来问题(如果有多个提交者)。

让我们知道你是否遇到任何进一步的问题或错误。

1

我想可能是更好的服务器上创建一个新的回购协议:

% ssh [email protected] 
% mv /path/to/repo /path/to/repo.old 
% mkdir /path/to/repo 
% cd /path/to/repo 
% git init --bare 

然后从你的所有不同的克隆推。我的想法是,这样可以避免任何可能存在于旧回购中的损坏文件,并且应该不会有任何损失,前提是你们都在自己的克隆上工作,并且没有人在服务器回购站中搞乱。