0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.git はあるのにGitリポジトリが突然認識されなくなった時のメモ

0
Posted at

当方は独学でGitを利用している、Git初心者です。

VS Code上でGitを利用し始めたところ、1か月足らずで開発中のプロジェクトフォルダのGitが認識されなくなってしまいました。

解決したのでメモしておきます。

image.png
※画像はイメージです。

大事なことは、「リポジトリを初期化」ボタンを絶対に押さないことですね。フリではありません。

なお本記事では Bash を使用しています。PowerShell の方は末尾も参考にしてください。

確認したこと

0. 初期化しない

GeminiさんにもChatGPTさんにも、しつこく押すなと言われました。
誤って押さないよう、「ソース管理」タブをいったん閉じました

GUIだと、こういう破壊的な変更をうっかりやってしまいそうだなと思いました。

1. ターミナルでステータス確認

普段はGUIでGitを使用しているため、ターミナルでも認識されないのかをまず確認しました。

git status

すると、以下のように返ってきました。

fatal: not a git repository (or any of the parent directories): .git

やはりエラーがあります。
VS Codeや拡張機能ではなく、Gitリポジトリ側が原因の可能性が高そうです。

2. .git ディレクトリが存在することを確認

PC標準のエクスプローラーで、プロジェクトフォルダを開きました。

image.png

隠しファイルとして、きちんと .git があります。

3. .git ディレクトリの中身を確認

.git の中身が壊れていないか確認するため、.git ディレクトリの中身を確認しました。

ls -la .git

image.png

.git の主要ファイルは揃っていそうです。

4. HEAD ファイルの中身を確認(原因)

メタ情報が破損していないか確認するため、ファイルの中身を一つずつ確認します。
HEADconfig あたりが怪しそうです。

image.png

なるほど、HEAD がなぜか空になっています。(※画像はイメージです。)

ターミナルで確認しても、やはり空になっていました。

cat .git/HEAD

対応

現在使用しているブランチ名をもとに、HEAD の中身を記載していきます。
ブランチ名は以下で確認できます。

ls .git/refs/heads

私は main ブランチとしていました。
そのため、HEAD に以下を書き込みます。

ref: refs/heads/main

保存したら、認識されるようになったか確認します。

git status

image.png

On branch main と表示されました。
成功したようです。

「ソース管理」タブに戻ったところ、GUIでもきちんと表示が戻っています。

image.png

まとめ

VS Code上でGitリポジトリが認識されなくなったため、原因の探索と解決を行いました。

原因は .git/HEAD ファイルの破損で、ref 情報を記載することで解決しました。

PowerShell 向け

# ステータス確認
git status

# .git ディレクトリの中身を確認
Get-ChildItem .git -Force

# HEAD ファイルの中身を確認
Get-Content .git\HEAD

# ブランチ名の確認
Get-ChildItem .git\refs\heads -Force

# main ブランチの場合、HEAD を修復
Set-Content -Path .git\HEAD -Value "ref: refs/heads/main" -NoNewline

# 修復後の確認
git status
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?