Ich folge dieses Tutorial. Alles funktioniert gut, bis ich dies auf meinem lokalen Computer ausführe (nach dem Ersetzen der $VARIABLE
s mit ihren tatsächlichen Werten):
git remote add nfsn ssh://$USERNAME@$SERVER/home/private/git/$REPONAME.git
Ich erhalte folgende Fehlermeldung:
fatal: Kein Git-Repository (oder eines der übergeordneten Verzeichnisse): .git
Wie komme ich über diesen Schritt hinaus?
Sie erhalten diesen Fehler, 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 a sucht .git
Repository-Verzeichnis (innerhalb des Projektstammverzeichnisses?), Wie in meiner Antwort auf „Git will not show log when I am in the project directory“ gezeigt wird:
Laut offizielle Git-Dokumentation zum Linux-Kernel,
GIT_DIR
ist [an environment variable] suche nach a .git
Verzeichnis (im aktuellen Arbeitsverzeichnis?) standardmäßig:
Wenn die GIT_DIR
Umgebungsvariable festgelegt ist, gibt sie einen Pfad an, der anstelle des Standardpfads verwendet werden soll .git
für die Basis des Repositorys.
Sie müssen entweder cd
in das Repository/die Arbeitskopie, oder Sie haben kein Repository initialisiert oder geklont. In diesem Fall müssen Sie ein Repo in dem Verzeichnis initialisieren, in dem Sie das Repo platzieren möchten:
git init
oder klonen Sie ein Repository
git clone <remote-url>
cd <repository>
HINWEIS: Dies beantwortet nicht das allgemeine Problem, das das Problem von OP war, sondern ein anderes Problem, bei dem diese Fehlermeldung auftreten kann. Ich hatte keine Lust, eine neue Frage zu stellen, nur um diese Antwort aufzuschreiben, sagen Sie mir, ob ich das stattdessen tun soll: P
Ich kam in die Situation, höchstwahrscheinlich aufgrund einer Beschädigung eines bestimmten Absturzes, den ich hatte, dass ich diesen Fehler bekam, selbst wenn .git
existierte.
smar@aaeru ~/P/Nominatim> git status
fatal: Not a git repository (or any of the parent directories): .git
smar@aaeru ~/P/Nominatim [128]> ls .git
COMMIT_EDITMSG config* FETCH_HEAD HEAD index logs/ modules/ objects/ ORIG_HEAD packed-refs
Da ich nichts hatte, was wirklich konserviert werden musste, ging ich einfach auf den Dummy-Weg und tat …
smar@aaeru ~/P/Nominatim [128]> git init
Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/
Funktioniert aber immer noch nicht, wie zB git log
kehrt zurück fatal: bad default revision 'HEAD'
. Fernbedienungen war dort aber, also tat ich es git fetch --all
und dann eben git reset --hard origin/master
um mich in den Zustand zu bringen, in dem sich das Repo zuvor befand.
Beachten Sie, dass Sie einige nicht festgeschriebene Änderungen mit sehen können git status
, git diff
usw. Dann einfach git diff yourfile > patch
bevor Sie den Reset ausführen.
Zumindest für mich reflog (git reflog
) vollständig verschwunden. Wenn Sie also das Zurücksetzen durchführen und es einige Änderungen gab, die Sie verhindern wollten, bin ich mir nicht sicher, ob Sie sie nach dem Zurücksetzen wiederherstellen können. Stellen Sie also sicher, dass Sie alle Änderungen gesichert haben, die Sie nicht verlieren können, indem Sie letztendlich einfach den Klon kopieren, bevor Sie dies versuchen.
Dieses Problem trat bei mir auf, nachdem ich den Speicherort eines Git-Projekts im Dateisystem verschoben hatte. Als ich einige Git-Befehle ausführte, trat der Fehler auf, z.
$ git status
fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis
Ich fand in /home/rospasta/path_old/gitprojecta/.travis/.git
Der absolute Pfad des alten Speicherorts des Projekts wurde geschrieben. Das manuelle Aktualisieren dieses Pfads des neuen Speicherorts löste das Problem für mich.
Mein Problem kann also ein Git-Problem sein oder auch nicht, aber HTH.
$ git status
fatal: Not a git repository:
Geben Sie einfach Folgendes in Ihre cmd- oder Git-Shell oder ein anderes Terminal ein:
$ git init
git init
Stellen Sie aber auch sicher, dass keines Ihrer Unterverzeichnisse ein eigenes hat.git
Mappe– James Oravec
14. Dezember 2015 um 17:44 Uhr