web-dev-qa-db-ja.com

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

致命的になります:コミットしようとするたびにHEADを有効な参照として解決できませんでした。

私が試してみました

echo ref: refs/heads/master >.git/HEAD

しかし、それは機能していません

また試しました

git commit

以下のソースからも機能しない

Git 'fatal:No such ref:HEAD'git tag:fatal:Failed to resolve 'HEAD' as a valid ref

助けてください。私のコミット履歴もすべてなくなりました

11
idurvesh

私も同じ問題に遭遇しました...そして私は以下によって解決しました

  1. 同じプロジェクトを他のフォルダーに複製します
  2. クローンプロジェクトの.gitフォルダをコピーしました
  3. 最後に、プロジェクトの元の.gitフォルダーを、コピーしたフォルダーに置き換えます。

Sudip Bhandariによる編集

なぜこれが機能するのですか?

壊れたgitリポジトリは、突然の電源障害やその他の異常によるファイルシステムの破損が原因であることがよくあります。 gitはすべての情報を.gitフォルダー内に格納し、それらが破損しているため、gitはリポジトリを認識しなくなりました。

警告

以前の.gitフォルダーに保存されているものはすべて失われます。リモコンの参照名(複数ある場合)などの設定は、再度セットアップする必要があります。

20
Pravesh Khatri

私の問題は

git init
git add .

試しました

git reset
  fatal: Failed to resolve 'HEAD' as a valid ref.
git reset --hard
  fatal: Failed to resolve 'HEAD' as a valid ref.

解決済み

git rm -r --cached .

環境

gitバージョン1.7.5.4

Ubuntu 11.10

1
hrvoj3e

私の場合、ブランチの名前を変更した後、結局同じ名前の2つのブランチで終わりました。 。git/refs/headsでそれらの1つを削除すると、すべて正常に戻りました。

1
Michael Schmid

私は死のブルースクリーンインシデントの後にこの問題を抱えていました。そのため、上記のSudip Bhandariの発言と似ていました。

  • .git/refs/heads/<mybranch>を調べたところ、エントリが破損している(判読できない)ことがわかりました。このファイルには、HEADブランチの完全なcommit-idが含まれています。
  • 新しいリポジトリのクローンを作成し、新しいチェックアウトから.git/refs/heads/<mybranch>を破損したものにコピーしました(スタッシュなどの最近のcommit-idを貼り付けるだけで修復できたと思います)。
  • 元のリポジトリに戻って、git rm -r --cached .およびgit reset --hardを実行してクリーンアップしたところ、すべてが再び正常に戻っていることがわかりました。
1
Oscar Bravo

この問題の最良の解決策:

'fatal:Failed to resolve HEAD as a valid ref' '

  1. Eclipse IDEでプロジェクトを開く

  2. プロジェクトの[チーム]メニューに移動して[切り替え]を選択します。最後に、現在の切り離されたブランチを選択に切り替えることができます。

以下の添付のスクリーンショットの通り:

enter image description here

0