Layer 8Ehrlicher Tech-Support
SoftwareSchweregrad: Anfängerfehlerfatal: not a git repository

git: fatal: not a git repository

git meldet 'fatal: not a git repository (or any of the parent directories)'? Du bist im falschen Ordner oder .git fehlt. So kommst du zurück ins Repo.

Aufwand:
ca. 5 Min.

Das Symptom

Du willst nur eben git status, git add oder git commit ausführen – und git kontert mit fatal: not a git repository (or any of the parent directories): .git. Kein Befehl geht mehr durch, obwohl du sicher bist, gerade in „deinem Projekt“ zu sein.

Die „Layer 8“-Wahrheit

git ist an dieser Stelle erstaunlich simpel gestrickt: Es läuft vom aktuellen Ordner immer weiter nach oben und sucht ein verstecktes .git-Verzeichnis. Erst das macht einen Ordner zum Repository. Findet git bis ganz nach oben keines, sagt es ehrlich: „Hier ist kein Projekt.“ In neun von zehn Fällen bist du schlicht im falschen Verzeichnis – eine Ebene zu hoch, im Downloads-Ordner oder im entpackten ZIP ohne .git. Der reflexhafte Griff zu git init ist dabei die Falle: In einem bestehenden Projekt erzeugt er ein neues, leeres Repo und kappt den Bezug zur echten Historie. Erst schauen, wo man steht – dann entscheiden, ob wechseln, klonen oder wirklich neu anfangen.

Die echte, verifizierte Lösung

1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:

  1. 1.

    Aktuelles Verzeichnis prüfen

    Zuerst nachsehen, wo du überhaupt stehst und ob ein verstecktes .git existiert. Fehlt es hier und in allen übergeordneten Ordnern, ist das die ganze Ursache:

    pwd
    ls -la
    
  2. 2.

    Ins richtige Projektverzeichnis wechseln

    Der häufigste Fall: Du bist eine Ebene zu hoch oder im Nachbarordner. In den tatsächlichen Projektordner wechseln – dort, wo das .git liegt – und den Befehl erneut ausführen.

  3. 3.

    Neues Projekt initialisieren

    Soll hier ein frisches Repository entstehen, dieses anlegen. Danach ist der Ordner ein gültiges Git-Repository:

    git init
    
  4. 4.

    Bestehendes Projekt klonen

    Gehört das Projekt zu einer Remote (GitHub, GitLab), holst du es mitsamt Historie per clone. Der Klon enthält das .git automatisch:

    git clone <repo-url>
    
  5. 5.

    Versehentlich gelöschtes .git erkennen

    Fehlt das .git in einem Ordner, in dem es mal war, wurde es gelöscht oder das Projekt unvollständig kopiert. Existiert die Remote noch, ist ein sauberer Neuklon der zuverlässigste Weg zurück.

Häufige Fragen (FAQ)

?Was bedeutet 'not a git repository'?

git sucht ab dem aktuellen Ordner aufwärts nach einem versteckten .git-Verzeichnis. Findet es keines bis zum Dateisystem-Wurzelpunkt, weiß git schlicht nicht, welches Projekt gemeint ist. Der aktuelle Ordner ist dann (noch) kein Repository.

?Repariert 'git init' den Fehler immer?

Nur bei einem wirklich neuen Projekt. 'git init' legt ein frisches, leeres Repository an. Wolltest du an einem bestehenden Projekt arbeiten, ist git init falsch – dann bist du entweder im falschen Ordner oder musst das Repo erst klonen, sonst verlierst du den Bezug zur eigentlichen Historie.

Belege

Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.

Zuletzt geprüft am . Dokumentation altert – ein Datum daneben ist der einzige ehrliche Umgang damit.

Auch zu finden unter

Verwandte Fehler

SWLästig! [rejected] (non-fast-forward)

git push rejected: non-fast-forward beheben

git push wird mit '! [rejected] non-fast-forward' abgelehnt? Die Remote hat Commits, die dir fehlen. So holst du sie sauber nach und pushst gefahrlos.

SWAnfängerfehlerYour local changes would be overwritten

git: local changes would be overwritten by merge

git stoppt mit 'Your local changes would be overwritten by merge/checkout'? So rettest du deine Änderungen per commit oder stash, statt sie zu verlieren.

SWAnfängerfehlerfatal: refusing to merge unrelated histories

Git: refusing to merge unrelated histories

git pull scheitert mit 'refusing to merge unrelated histories'? So führst du zwei getrennt entstandene Repos kontrolliert zusammen.