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

Fix 'fatal: not a git repository' in Git

Ran git but got 'not a git repository'? Almost always you're in the wrong directory. Quick fix, then I'll show you the sneaky causes.

Yeah, that error's annoying, especially when you're mid-flow and just want to commit. But it's almost always a simple fix, so let's get you moving.

The Quick Fix

Run pwd (on Mac/Linux) or cd (on Windows) to check your current directory. Then ls -la (or dir /a on Windows) and look for a .git folder. If you don't see it, you're not in a Git repo. Move into the right one:

cd /path/to/your/project

Once you're inside the project root (the folder that contains the .git directory), the error disappears. That's it. 90% of the time, that's the whole story.

Why This Happens

Git stores all its metadata—history, branches, config—in a hidden folder named .git at the top of your project. When you run any Git command (like git status or git commit), Git walks up from your current directory until it finds that folder. If it doesn't find one, it throws this exact error.

So the error is Git's way of saying "I looked in this directory and every parent above it, and there's no repository here." It's not a Git bug—it's a location problem.

Less Common Variations

Sometimes you're in the right directory but still get the error. Here are the sneaky ones I've seen in the wild.

1. You Haven't Initialized the Repo Yet

If you cloned a project, it's ready. But if you created a new folder and never ran git init, there's no .git folder yet. Fix it with:

git init

2. You're Inside a Subdirectory

Some folks run git from a subfolder, like /project/src/utils. Git should handle that fine—it walks up. But if you're in a submodule or a linked worktree, the parent might not contain the main .git. Check with:

git rev-parse --show-toplevel

If that fails, you're likely not in a repo at all.

3. Corrupted or Missing .git Folder

Rare, but if the .git folder got deleted or corrupted (did you accidentally delete it during a cleanup?), Git has nothing to work with. If you have a remote, you can re-clone:

git clone <remote-url> new-folder

And then copy your uncommitted changes over. If you don't have a remote, you're in trouble—but that's a backup lesson, not a Git lesson.

4. Permissions Blocking Access

If you're on Linux or Mac and the .git folder exists but you can't read it, Git might throw a related error. Check permissions:

ls -la .git

If it shows ????????? or you get a Permission denied, fix ownership:

sudo chown -R $(whoami) .git

That's rare, but it happens when you've mixed sudo and non-sudo commands.

5. Git's safe.directory Warning

Newer Git versions (2.35.2+) block repositories owned by different users—a security fix. If you see dubious ownership before the fatal error, add the folder to the safe list:

git config --global --add safe.directory /path/to/project

6. You're Actually in a Different Location Than You Think

This one's my favorite. You're convinced you're in the right place, but maybe you've got two similar folders, or a symlink that points elsewhere. Run pwd -P to see the physical path, not the symlink. I've wasted 10 minutes on that before.

Prevention: Stop This From Happening Again

Honestly, you can't prevent the wrong-directory mistake entirely—it's a human thing. But here's what helps:

  • Always open your terminal in the project root. Most IDEs do this by default.
  • If you use a shell prompt like Oh My Zsh, add the Git branch display. You'll instantly see when you're not in a repo.
  • Before running git add or git commit, do a quick git status. If it errors, you know you're wrong.
  • For scripts, add a check: if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then echo "Not in a repo"; exit 1; fi. That saves automation headaches.

And seriously, if you keep hitting this, make it a habit to type git status before anything else. It's the cheapest sanity check you have.

That's it. You're back to committing. If it's still broken after all this, you might have something odd going on—check echo $GIT_DIR or git config --global --list for stray settings. But honestly, that's a Monday problem. Good luck.

Related Errors in Programming & Dev Tools
RecursionError Fix Python RecursionError in JSON Serialization ModuleNotFoundError Fix Python ModuleNotFoundError: No module named 'module' 0X40000005 Fixing STATUS_SEGMENT_NOTIFICATION (0X40000005) in Visual Studio 0XC01E0200 STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE 0xC01E0200 Fix

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.