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、既存リポジトリなら該当ディレクトリの中へ移動すれば解消する。
よくある原因
- リポジトリ外での実行: ホームディレクトリやデスクトップなど、
.gitを持たない場所でコマンドを打っている。 - 未初期化:
git initもgit cloneもまだ実行していない。 .gitの削除: 隠しフォルダを整理する際などに.gitを消してしまった。- clone フォルダの外: clone は成功したが、生成されたサブフォルダへ入らず親で実行している。
解決策
1. 今どこにいるか確認する
pwd
git rev-parse --show-toplevelgit rev-parse --show-toplevel はリポジトリ内ならルートの絶対パスを返し、外なら同じ fatal を返す。
これで「中にいるか外にいるか」を切り分けられる。
2. 新規リポジトリを作る
git initカレントディレクトリに .git が作られ、以降の git コマンドが通るようになる。
3. 既存リポジトリの中へ移動する
cd path/to/repo
git statusclone 済みなら、生成されたフォルダ名へ cd してから操作する。
4. .git を消していないか確認する
ls -a.git が見当たらなければ履歴ごと失われている。
リモートがあるなら git clone <url> で取り直すのが速い。