Initialisiert das zweimalige Ausführen von git init ein Repository oder ein vorhandenes Repo neu?

164

Was passiert mit einem vorhandenen Git-Repository, wenn Sie es git initerneut ausgeben ?

Ich habe ein Repository mit erstellt git init. Eine Datei erstellt, hinzugefügt, festgeschrieben. Überprüfen Sie den Status (nichts festzuschreiben). Erstellen Sie dann eine weitere Datei, überprüfen Sie den Status und ich kann sehen, dass sie wie erwartet nicht verfolgt wird.

Dann, sagen wir versehentlich, starte ich git initerneut und erhalte die Meldung "Vorhandenes Git-Repository neu initialisieren" .

Versucht git status, aber es zeigt das gleiche. Was passiert also wirklich?

Kann eine Neuinitialisierung eines vorhandenen Git-Repositorys auf diese Weise schädlich oder hilfreich sein? Warum können wir uns git initin einem vorhandenen Repository befinden?

Herr L.
quelle
FWIW mit Xcode ich zum ersten Mal des erstellen lokalen Repository für das erste Mal, als ich dann zu Github.com ging eine neue Remote - Repository zu erstellen. Was ich getan habe, um dann mein lokales Repository mit meiner Fernbedienung zu verbinden ... Ich habe die Schritte (auf Github.com bereitgestellt) befolgt. Der erste Schritt ist git initder, den ich getan habe. Vermutlich war es das 2. Mal, nachdem Xcode es automatisch erstellt hatte
Honey

Antworten:

208

Aus den Git- Dokumenten :

Das Ausführen von git init in einem vorhandenen Repository ist sicher. Es werden keine Dinge überschrieben, die bereits vorhanden sind. Der Hauptgrund für das erneute Ausführen von git init ist das Abrufen neu hinzugefügter Vorlagen.

Coreyward
quelle
110

Dies ist in der git initDokumentation beschrieben:

Das Ausführen von git init in einem vorhandenen Repository ist sicher. Es werden keine Dinge überschrieben, die bereits vorhanden sind. Der Hauptgrund für das erneute Ausführen von git init ist das Abrufen neu hinzugefügter Vorlagen.

Greg Hewgill
quelle
47

Seit v1.7.5 ( b57fb80a7 ) hat git initin einem vorhandenen Repo auch das Verschieben des .gitVerzeichnisses erlaubt :

Der Hauptgrund für das erneute Ausführen von 'git init' besteht darin, neu hinzugefügte Vorlagen abzurufen (oder das Repository an einen anderen Ort zu verschieben, wenn --separate-git-dir angegeben ist).

"Neu hinzugefügte Vorlagen aufnehmen" bedeutet, dass alle Vorlagen, die noch nicht aus dem Vorlagenverzeichnis kopiert wurden, jetzt in das vorhandene Git-Verzeichnis kopiert werden.

"Verschieben des Repositorys an einen anderen Ort" bedeutet, dass --separate-git-dirdas vorhandene .gitVerzeichnis dorthin verschoben und durch einen Link ersetzt wird , wenn es auf einen anderen Ort verweist .

Joe
quelle
-1

Es ist gemein, dass Sie den Git bereits initialisiert haben. weil Sie bereits eine Datei auf github von diesem Pfad hochladen. Wenn Sie den Pfad überprüfen, wird ein Ordner mit dem Namen .git erstellt. Aus diesem Grund müssen Sie nicht erneut auf initialisiertes Git zurückgreifen. Sie können mit dem nächsten Schritt fortfahren

git hinzufügen.

Git-Ordner

Khadim Rana
quelle