2

Win7、64ビットを使用します。

3か月間正常に動作しているGitExtensionsGUIを使用しています。今日、私はコミットを行い、すぐにサーバーリポジトリにプッシュして、シャットダウンしました。その日の後半に電源を入れ直して別の(ローカル)コミットを実行しようとすると、GitExtensionsは、そのリポジトリにコミットしたことがないことを通知し、変更された119個のファイルを表示しました。

明らかに何かが揚げられたので、私の最初の考えは私のサーバーリポジトリからプルすることでした。何だと思う?サーバーリポジトリは、私がこれまでコミットしたことがないことも示しています。

それで、私の次の考えは、GitExtensionsが私に嘘をついているということでした。そこで、Tortoise GITに移動して、「ログの表示」を行いました。何だと思う?GitExtensionsは嘘をついていません。Tortoise GITは、私が自分のリポジトリにコミットしたことがないことも示しています。

リポジトリを物理的に参照すると、このプロジェクトに取り組んできた3か月をカバーする妥当なタイムスタンプを持つすべてのオブジェクトファイルを確認できます。

どうすればGITを回復させ、3か月のコミットがまだ残っていることに気付くことができますか?私が見た唯一の記事は、開始点として以前のコミットを利用する必要がある個々の失われたコミットを回復する方法に関するものです。コミットが表示されないので、明らかにそれは私を助けません。

ご協力いただきありがとうございます。

4

3 に答える 3

1

「git log master」またはその他のブランチで何が得られるかを確認してください。それが機能する場合は、「git bundle」を使用して、コミットとすべての関連オブジェクトを明示的にエクスポートできます。すすぎ、.git/refs の他のブランチに尋ねるために繰り返します。

これを修正するには、コマンドラインにドロップダウンするのがおそらく最善でしょう。最新の msysgit をダウンロードします。

于 2012-01-03T08:47:50.070 に答える
1

まず、リポジトリをバックアップして、失敗した修正の試みによってリポジトリがさらに破損しないようにします。

git fsckは、リポジトリ内のエラーを見つけて修正するのに役立ちます。

git reflogは、孤立したコミットを特定し、履歴を再構築するのに役立ちます。

「悪いデフォルトリビジョン」エラーに関するこの回答が役立つ場合があります。

fsck が何もしない場合、私が最初に考えたのは、リモート リポジトリの HEAD をリセットしてコミットを 1 つ戻してから、再クローンを試みることです。

于 2012-01-03T01:24:05.943 に答える
0

フォルダは.gitまだそこにありますか?それがgitがすべての情報を保存する場所である場合。そうでない場合、元に戻すものは何もありません。そうでない場合は、ローカルの git がなくなっています。それでも問題が解決しない場合.gitは、git log を実行して、表示される内容を確認してください。

.git フォルダーがなくなった場合は、サーバーから「新しい」クローンを作成してすべてを取得できるはずです。

于 2012-01-03T00:51:08.830 に答える