できない.dev

Git で「fatal: not a git repository」が解決できない

カレントディレクトリにもその親にも .git が無いために出るエラー。
新規なら git init、既存リポジトリなら該当ディレクトリの中へ cd する。

公開:

要約

fatal: not a git repository (or any of the parent directories): .git は、いま実行しているディレクトリにも、その親をたどっても .git が見つからないときに出る。

Git は「今いる場所」から上へ親ディレクトリを探索して .git を見つける仕組みなので、リポジトリの外にいるか、そもそも初期化していないのが原因になる。

新規プロジェクトなら git init、既存リポジトリなら該当ディレクトリの中へ移動すれば解消する。

よくある原因

  1. リポジトリ外での実行: ホームディレクトリやデスクトップなど、.git を持たない場所でコマンドを打っている。
  2. 未初期化: git initgit clone もまだ実行していない。
  3. .git の削除: 隠しフォルダを整理する際などに .git を消してしまった。
  4. clone フォルダの外: clone は成功したが、生成されたサブフォルダへ入らず親で実行している。

解決策

1. 今どこにいるか確認する

pwd
git rev-parse --show-toplevel

git rev-parse --show-toplevel はリポジトリ内ならルートの絶対パスを返し、外なら同じ fatal を返す。
これで「中にいるか外にいるか」を切り分けられる。

2. 新規リポジトリを作る

git init

カレントディレクトリに .git が作られ、以降の git コマンドが通るようになる。

3. 既存リポジトリの中へ移動する

cd path/to/repo
git status

clone 済みなら、生成されたフォルダ名へ cd してから操作する。

4. .git を消していないか確認する

ls -a

.git が見当たらなければ履歴ごと失われている。
リモートがあるなら git clone <url> で取り直すのが速い。

この記事は役立ちましたか?