致命的なファイル・システム・エラーが発生した後にGitを復元する方法?
質問
メインサーバ上のファイルシステムエラーの後にgitリポジトリを復元する最速のパスは何ですか?
あなたのOSSプロジェクトの中央サーバーに障害が発生し、2日間のすべてのコミットは、復元後に失われている想像してみてください。どのようにそれらの背中を得るのですか?それだけですべてのクライアントに「Gitのプッシュ」を呼び出すのに十分ですか?それとも私が考慮しなければならない何か他のものがありますか?
解決
すべてのリポジトリは、その最新のgit push
またはgit fetch
をしたリポジトリからgit pull
がその状態にすべてがかかっアップする必要がありますも(のみ慣例により「メイン」である)「メインリポジトリ」のバックアップですもちろん。あなただけのフックと、このようなの世話をする必要がありますが、あなたがコミットの最後の2日分はそれらを失ったことを言うならば、おそらく、とにかく被害を受けませんでした。
他のヒント
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
そして、あなたが持っているすべての異なるクローンから押してください。私の考えでは、これは古いレポであってもよく、任意の破損したファイルを避けるだろうということです、そして、全くの損失があってはならない、あなた自身のクローン上のすべての作業を提供し、誰もが、サーバーのレポでいじりされます。