在主服务器上发生文件系统错误后恢复git存储库的最快路径是什么?
想象一下,您的OSS项目的中央服务器发生故障,恢复后两天的所有提交都将丢失。你怎么得到那些回来的?仅仅在所有客户端上调用“git push”就足够了吗?或者还有其他我必须考虑的事项吗?
答案 0 :(得分:8)
每个存储库也是“主存储库”的备份(仅按惯例为“主要”),因此来自存储库的git push
执行了最新的git fetch
或git pull
当然,应该是它的所有状态。你只需要处理钩子等等,但如果你说只丢失了最后两天的提交,那么这些可能并没有受到伤害。
答案 1 :(得分:2)
git pull
然后git push
就足够了。
或者,git push -f
将使用本地副本强制更新服务器,但这可能会导致其他人出现问题(如果有多个提交者)。
如果您遇到任何进一步的问题或错误,请告诉我们。
答案 2 :(得分:1)
我认为在服务器上创建一个新的repo可能更好:
% ssh user@server
% mv /path/to/repo /path/to/repo.old
% mkdir /path/to/repo
% cd /path/to/repo
% git init --bare
然后从您拥有的所有不同克隆中推送。我的想法是,这样可以避免任何可能存在于旧存储库中的损坏文件,如果您在自己的克隆上工作,并且没有人在服务器仓库中乱七八糟,那么根本不会有任何损失。