在主服务器的文件系统出现错误后,恢复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”吗?还是还有其他事情我必须考虑?
在主服务器的文件系统出现错误后,恢复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 fetch code>或
git 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
然后从你拥有的所有不同克隆中推送。 我的想法是这将避免任何可能存在于旧存储库中的损坏文件,并且只要您所有人都在自己的克隆上工作,而没有人在服务器存储库中胡闹,就不应该有任何损失。