Ich stelle mich Git vor, indem ich diesem Tutorial folge:
Alles funktioniert einwandfrei bis zu dem Teil, in dem das Repo meinem lokalen Computer hinzugefügt wird:
git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git
(Nach dem Ersetzen von USERNAME, NFSNSERVER und REPOAME durch die richtigen Namen) erhalte ich die folgende Fehlermeldung:
fatal: Not a git repository (or any of the parent directories): .git
Können Sie mir helfen, diesen Schritt zu überwinden?
git init
Stellen Sie aber auch sicher, dass keines Ihrer Unterverzeichnisse einen eigenen.git
Ordner hatAntworten:
Haben Sie ein lokales Git-Repository initiiert, zu dem diese Fernbedienung hinzugefügt werden soll?
Hat Ihr lokales Verzeichnis einen
.git
Ordner?Versuchen Sie es
git init
.quelle
.git
Ordner ist weg. Entsprichtgit init
dem Löschen des Repository-Ordners und danngit clone ...
. Alles was ich tun muss ist einpull
.git
Ordner nicht mehr vorhanden ist, können Sie ihngit init
erneut ausführen , um einen neuen zu erstellen . Sie müssen eine Fernbedienung erneut hinzufügen, bevor Sie sie abrufen können.jalal@klein:~/computer_vision/py-faster-rcnn$ git add -A fatal: Not a git repository: caffe-fast-rcnn/../.git/modules/caffe-fast-rcnn
Diese Fehlermeldung wird angezeigt, wenn Sie versuchen, einen Git-Befehl zu verwenden, wenn sich Ihr aktuelles Arbeitsverzeichnis nicht in einem Git-Repository befindet. Das liegt daran, dass Git standardmäßig nach einem
.git
Repository-Verzeichnis sucht (innerhalb des Projektstamms?), Wie aus meiner Antwort auf "Git zeigt kein Protokoll an, wenn ich mich nicht im Projektverzeichnis befinde" hervorgeht :Sie müssen entweder
cd
in das Repository / die Arbeitskopie wechseln oder Sie haben ein Repository überhaupt nicht initialisiert oder geklont. In diesem Fall müssen Sie ein Repo in dem Verzeichnis initialisieren, in dem Sie das Repo platzieren möchten:oder klonen Sie ein Repository
quelle
git init
. Nach Ihrer Antwort zu lesen, habe ich dieses Bild mehrmals auf Repositories , dass ich tat Klon, wurde aber nicht erkannt. Es scheint also sicher zu sein, wenn es von einem Verzeichnisbaum ausgeführt wird, der a sein sollgit repository
, alle Dateien im Git-Verzeichnis enthält, aber behauptet, dies nicht zu seinfatal: Not a git repository (or any parent up to mount point
Mein Problem war, dass bei einigen Problemen mit meinem Betriebssystem jeder Befehl in meinem lokalen Repository mit "fatal: Kein Git-Repository (oder eines der übergeordneten Verzeichnisse): .git" endete, einschließlich des Befehls fsck.
Das Problem war eine leere HEAD-Datei .
Ich konnte den tatsächlichen Filialnamen finden, an dem ich in .git / refs / head gearbeitet habe, und dann habe ich Folgendes getan:
Es funktionierte.
quelle
HINWEIS: Dies entspricht nicht dem allgemeinen Problem, das das Problem von OP war, sondern einem anderen Problem, bei dem diese Fehlermeldung möglicherweise auftritt. Ich hatte keine Lust, eine neue Frage zu stellen, nur um diese Antwort aufzuschreiben. Sagen Sie mir, ob ich das stattdessen tun sollte: P.
Ich kam zu der Situation, höchstwahrscheinlich aufgrund einer Beschädigung eines bestimmten Absturzes, dass ich diesen Fehler auch dann bekam, wenn er
.git
existierte.Da ich nichts hatte, was wirklich konserviert werden musste, ging ich einfach mit dem Dummy-Weg und tat ...
Funktioniert aber immer noch nicht, wie zum Beispiel
git log
zurückkehrtfatal: bad default revision 'HEAD'
. Fernbedienungen waren jedoch da, also tat ich esgit fetch --all
und nurgit reset --hard origin/master
um mich in den Zustand zu versetzen , in dem sich das Repo zuvor befand.Beachten Sie, dass , wenn es einige unbestätigten Änderungen ist, können Sie sie mit sehen
git status
,git diff
und so weiter. Dann kurzgit diff yourfile > patch
vor dem Zurücksetzen.Zumindest für mich ist reflog (
git reflog
) komplett verschwunden. Wenn Sie den Reset durchführen und einige Änderungen verhindern wollten, bin ich mir nicht sicher, ob Sie sie nach dem Zurücksetzen wieder erhalten können. Stellen Sie also sicher, dass Sie alle Änderungen, die Sie nicht verlieren können, gesichert haben, indem Sie den Klon kopieren, bevor Sie dies versuchen.quelle
git init
undgit fetch --all
hat das Problem behoben .Geben Sie einfach Folgendes in Ihre cmd- oder git-Shell oder ein anderes Terminal ein:
quelle
Dieses Problem trat mir auf, nachdem ich den Speicherort eines Git-Projekts im Dateisystem verschoben hatte. Wenn ich einige Git-Befehle ausgeführt habe, ist der Fehler aufgetreten, z.
Ich fand im
/home/rospasta/path_old/gitprojecta/.travis/.git
absoluten Pfad, dass der alte Ort des Projekts geschrieben wurde. Das manuelle Aktualisieren dieses Pfads des neuen Speicherorts hat das Problem für mich behoben.Mein Problem kann also ein Git-Problem sein oder auch nicht, aber HTH.
quelle
Falls es jemand anderem hilft, habe ich diese Fehlermeldung erhalten, nachdem ich versehentlich .git / objects / gelöscht habe
Das Wiederherstellen löste das Problem.
quelle
In der Befehlszeile / CLI wird dieser Fehler angezeigt, wenn Ihr aktuelles Verzeichnis NICHT das Repository ist. Sie müssen also zuerst eine CD ins Repo legen.
quelle
Wahrscheinlich zu spät, aber eine andere Lösung, die zukünftigen Besuchern helfen könnte. Löschen Sie zuerst das alte
.git
Verzeichnis -Dann initialisiere das Git Repo erneut
quelle
fatal
Fehlermeldung, obwohl der.git
Ordner vorhanden ist.Es scheint, als würden Sie nicht zu Ihrem spezifischen Ordner gehen. Wenn ich beispielsweise an einem Projekt mit dem Namen bugsBunny arbeite und es im Ordner d: / work: code gespeichert ist, müssen Sie zuerst mit cd d: / work / code / bugsBunny in diesen Ordner wechseln und danach kann deine Git-Befehle weiter verwenden.
quelle
Sogar ich hatte das gleiche Problem. Ich habe ein Shell-Skript geschrieben, das alle meine Codes an Werktagen der Woche um 17:55 Uhr mit crontab auf meinem Git-Repo sichert. Als ich die Protokolle von Cron sah, fand ich das oben erwähnte Problem.
Das obige Problem tritt nur auf, wenn Sie versuchen, Git-Befehle aus einem Nicht-Gir-Verzeichnis auszuführen (dh aus einem anderen Verzeichnis, das nicht die Arbeitskopie ist). Um dies zu beheben, fügen Sie
-C <git dir>
den Befehl git hinzu, den Sie so ausführen, dass er seingit status
wirdgit -C /dir/to/git status
und seingit add -A
wirdgit -C /dir/to/git -A
.quelle
In meinem Fall habe ich Tortoise SVN verwendet und den Fehler gemacht, gleichzeitig auch die Visual Studio GIT-Funktionen zu verwenden. Dadurch sperrte Visual Studio die HEAD-Datei im .git-Ordner, sodass weder VS noch Tortoise auf das Repo zugreifen konnten, und ich bekam von beiden Anwendungen den Fehler "Schwerwiegend: Kein Git-Repo ...".
Lösung:
quelle
Dazu müssen Sie einen Befehl eingeben, der in Bitbucket-Befehlen fehlt
Bitte versuchen Sie es mit git init.
quelle
In meinem Fall hatte ich das gleiche Problem, als ich alle git - Befehle (z. B. git status) mit Windows cmd ausprobierte. Nachdem ich git für das Fenster https://windows.github.com/ in den Umgebungsvariablen installiert habe , füge den Klassenpfad des gits in die Variable "PATH" ein. Normalerweise wird das Git unter C: / user / "username" / appdata / local / git / bin installiert. Fügen Sie dies auf dem PATH in der Umgebungsvariablen hinzu
und eine weitere Sache auf dem cmd gehen Sie zu Ihrem Git-Repository oder Ihrer CD, wo sich Ihr Klon in Ihrem Fenster befindet. Normalerweise werden sie in den Dokumenten unter github cd Document / Github / yourproject gespeichert. Danach können Sie beliebige git-Befehle haben
Vielen Dank
quelle
Gehen Sie zu Ihrem Quellordner, in dem das lokale Repo gespeichert ist. Mein Beispiel befindet sich in c: / GitSource. Klicken Sie mit der rechten Maustaste, während Sie sich im Ordner befinden. Klicken Sie hier auf git bash und dann auf git status.
quelle
GIT_DIR sollte nicht gesetzt sein:
unset GIT_DIR
quelle
In meinem Fall war die Datei .git / HEAD beschädigt (enthielt nur Punkte). Also habe ich es bearbeitet und seinen Inhalt ersetzt durch:
ref: refs/heads/master
und es fing wieder an zu arbeiten.
quelle
Für mich hing dies mit missbräuchlichem Eigentum auf meinem
.git/
Weg zusammen.root
im Besitz.git/HEAD
und.git/index
verhindert, dass derjenkins
Benutzer den Job ausführt.quelle
.git/HEAD
und festgelegt.git/index
haberoot:root
, kann ich weiterhin fehlerfrei Fernbedienungen hinzufügen. Wenn ich den Besitz des gesamten.git
Verzeichnisses auf ändereroot
, wird ein anderer Fehler angezeigt :error: could not lock config file .git/config: Permission denied
.Der folgende Fehler scheint, als hätte Gits die .git-Datei nicht im aktuellen Verzeichnis gefunden, sodass eine Fehlermeldung ausgegeben wird.
Wechseln Sie daher in das Verzeichnis in das Repository-Verzeichnis, in dem Sie den Code von git auschecken müssen, und führen Sie diesen Befehl aus.
quelle
In meinem Fall stellte ich fest, dass Git in Windows ab einem bestimmten Zeitpunkt zwischen Groß- und Kleinschreibung für den Laufwerksbuchstaben unterschied.
Nach dem Upgrade von git binary in Windows wurden die CLI-Befehle, die früher funktionierten, gestoppt. Der Pfad im Skript war beispielsweise D : \ bla \ file.txt, während der Befehl git nur d : \ bla \ file.txt akzeptierte
quelle
git funktionierte einwandfrei und plötzlich zeigte es diese
fatal: Not a git repository (or any of the parent directories): .git
Nachricht.Da ich nicht sicher bin, was im .git-Ordner beschädigt ist, habe ich
git clone ** newfolder
den gesamten .git-Ordner in meinen beschädigten / alten Ordner kopiert, in dem ich Änderungen vorgenommen habe, bevor git eine Fehlermeldung anzeigt.Alles wurde wieder normal und Git erkannte auch meine geänderten / nicht bereitgestellten Dateien.
quelle
Stellen Sie die
.git/ORIG_HEAD
und andere Root-.git-Repo-Dateien wieder herIch habe diesen Fehler nach dem Wiederherstellen aus dem Backup erhalten. Anscheinend haben es die im Stammverzeichnis von .git enthaltenen Dateien nicht zum Ziel geschafft, aber alle Unterordner haben dies getan. Zuerst dachte ich, das Repo sei intakt.
Ich habe es behoben, indem ich die Root-Dateien wiederhergestellt habe.
quelle
Ich hatte dieses Problem mit dem Jenkins Git-Plugin nach Authentifizierungsproblemen mit GitLab. Jenkins berichtete 'hudson.plugins.git.GitException: [...] stderr: GitLab: Das gesuchte Projekt konnte nicht gefunden werden. fatal: Konnte nicht aus dem Remote-Repository lesen. '
Wenn ich jedoch einen 'Git-Klon' oder 'Git-Abruf' direkt über die Jenkins-Box (Befehlszeile) durchgeführt habe, hat dies ohne Probleme funktioniert.
Das Problem wurde behoben, indem das gesamte Verzeichnis / workspace im Jenkins-Jobordner für diesen bestimmten Job gelöscht wurde , z
Vermutlich war der lokale .git-Ordner veraltet / beschädigt?
quelle
Dies kann auch an Berechtigungen liegen. Überprüfen Sie die Eigentümer- / Gruppenberechtigungen und stellen Sie sicher, dass Sie über ausreichende Berechtigungen für den Zugriff auf diese Daten verfügen. In meinem Fall bin ich auf diesen Fehler gestoßen, als ich "git status" in einem Repo ausgeführt habe, dessen Besitz auf root: root festgelegt war. Das Ausführen von "Git Status" als Root löste mein Problem. Wenn Sie nicht möchten, dass der Benutzer- / Gruppenbesitz root: root ist, können Sie das Repo alternativ in etwas zerlegen, auf das Sie Zugriff haben.
quelle
Ich hatte dieses Problem und habe es durch Hinzufügen der Datei README.md behoben
quelle
In meinem Fall hatte ein Systemabsturz dazu geführt, dass die HEAD-Datei beschädigt wurde. Diese Anleitung zeigt, wie Sie dieses und andere Probleme beheben können.
https://git.seveas.net/repairing-and-recovering-broken-git-repositories.html
quelle