物語:
デスクトップとラップトップの両方で RoR アプリを開発しています。別のサーバーで行われた変更をコミットし、それらを github にプッシュし、別のサーバーでフェッチしてマージするのは非常に便利でした。
出発点は次のとおりです。デスクトップで最新の変更をコミットし、それらを github にプッシュしてから、フェッチしてラップトップにマージしました。次に、ラップトップでいくつかのコミットを行い、github にプッシュしました。変更を取り、デスクトップにマージしました (--no-ff を使用)。次に、すべてのいたずらの可能性のある原因が起こりました。デスクトップを元に戻して、最新のフェッチとマージの前の場所にコミットしました。それを使っていくつかの開発作業を行い、コミットし、github にプッシュしました。ラップトップでも元に戻しましたが、github からの最新のフェッチの間のどこかで行われたコミットに戻し、再度フェッチしてそれらをマージしました。デスクトップとラップトップの両方を元に戻した後にいくつかのエラーメッセージが表示されましたが、それでもかなりうまく機能し、両方のマシンで作業を続けました。
今まで。ラップトップから github にプッシュしようとしましたが、次の出力が得られました。
Counting objects: 106, done.
error: unable to find 5a2a4ac...
error: unable to find bc36923...
error: unable to find ecb0d86...
error: unable to find f76d194...
error: unable to find f899df7...
Compressing objects: 100% (64/64), done.
fatal: failed to read object 5a2a4ac... : Invalid argument
error: failed to push some refs to 'git@github:username/repo.git'
では、問題は、ここで正確に何が起こったのかということです。
編集:ラップトップを一時停止して、その状態で場所から場所へ移動したため、何らかの形でハードドライブが台無しになったようです。問題を回避して作業を続けたため、fsck の出力は利用できませんが、IIRC の一部のブランチとコミットは、git が読み取れなかったコミットを含め、ぶら下がっていました。- ティーム