English 中文(简体)
如何在致命文件系统错误后恢复 Git?
原标题:
  • 时间:2009-02-16 10:09:41
  •  标签:

在主服务器的文件系统出现错误后,恢复Git存储库的最快路径是什么? (Zài zhǔ fúwùqì de wénjiàn xìtǒng chūxiàn cuòwù hòu, huīfù Git cángkù de zuì kuài lùjìng shì shénme?)

想象一下,你的开源软件项目的中央服务器失败了,在恢复后,两天内的所有提交都丢失了。如何才能找回它们?只需要在所有客户端上调用“git push”吗?还是还有其他事情我必须考虑?

最佳回答

每个存储库也是“主存储库”的备份(仅根据惯例为“main”),因此从最近进行了git fetchgit pull 的存储库推送即可。除了状态外,您只需要关心钩子等,但如果您说丢失了最近两天的提交,那么它们可能并未受到损害。

问题回答

一个git pull 然后一个git push 应该就足够了。

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

如果您遇到任何其他问题或错误,请告诉我们。

我认为在服务器上创建一个新的仓库可能更好。

% ssh user@server
% mv /path/to/repo /path/to/repo.old
% mkdir /path/to/repo
% cd /path/to/repo
% git init --bare

然后从你拥有的所有不同克隆中推送。 我的想法是这将避免任何可能存在于旧存储库中的损坏文件,并且只要您所有人都在自己的克隆上工作,而没有人在服务器存储库中胡闹,就不应该有任何损失。





相关问题