3

私の用語が間違っている場合はお詫びします。私は Git の経験があまりありません。私は github リポジトリからローカル リポジトリを持っていますが、停電の後、それが表示されるようになりました

HEAD as 0000000000000000000000000000000000000000 

追加用にマークされたすべてのファイル。FETCH_HEADマスターだけでなくいくつかのブランチがあるにもかかわらず、TortoiseGit が私の唯一のローカル ブランチとして表示されます。リモート ブランチは何が起こっているかを覚えているようです。オリジンのリモート URL と最近のブランチの選択があります。

ローカルの(プッシュされていない)変更があるため、すべてが台無しになる場合に備えて、何かをしようとするのは本当に緊張しています。私が調べられるこの問題の特定の用語はありますか?

Windowsでtortoise-gitを使用しています。私はgitコマンドラインをインストールしていますが、基本的なこと以外は何も知りません。

ここに画像の説明を入力

追加する必要がありますが、停止の前にプッシュを行ったばかりなので、プッシュされていない変更は最小限です。文字通り 2 つのファイルです。そのため、ローカル コミットを復元するよりも簡単な場合は、リモート リポジトリとの同期に戻すことは問題ありません。

実行すると、次のようgit fsckになります。

error: Invalid HEAD error: unable to unpack 071bf20e651e1ac9ea91821ee947786138f79156 header error: inflateEnd: stream consistency error (no message) fatal: loose object 071bf20e651e1ac9ea91821ee947786138f79156 (stored in .git/obj ects/07/1bf20e651e1ac9ea91821ee947786138f79156) is corrupt

実行すると、次のようgit reflogになります。

致命的: 不正なデフォルト リビジョン 'HEAD'

実行するgit reset --hardと失敗します:

致命的: 'HEAD' を有効な参照として解決できませんでした。

4

1 に答える 1

1

プッシュされていないコミットがまだそこにある可能性が非常に高く、ブランチ参照が失われただけです。

それらを回復するためにできる最善の方法は次のとおりです。

  • ディレクトリ全体をコピーします。
  • 実行しますgit fsck
  • reflogで最後のコミットを確認してください最後のブランチのヒントになる可能性が非常に高い
  • その上にブランチを作成します。 git checkout -b laststate
  • 作業ディレクトリとは別に、コミットされていないファイルを保存します。
  • 最後のブランチ ヒント SHA1 にハード リセットするgit reset --hard <sha1>
  • コミットされていない変更を元に戻す

だからあなたの編集を見ると、あなたのレポは本当にめちゃくちゃです。

HEAD は無効な参照です。これを設定するのが最後のチャンスですorigin/master

git reset --hard origin/master

問題を修正し、HEAD を元に戻す必要があります。

于 2013-03-04T09:38:09.273 に答える