2010-06-21 45 views
58

Ich lief die folgenden Befehle auf meinem Ruby on Rails Projekt:Wo speichert Git Dateien?

git init 
git add . 
git commit -a -m 'Initial' 

Wo Git dieses Repository tatsächlich gespeichert werden? (Es ist auf meinem lokalen Rechner, aber wo?)

+1

BTW, git -a -m 'initial' ist die gleiche wie git commit commit -am 'initial' – math2001

Antwort

79

Es wird Ihr Repository im Ordner .git im aktuellen Verzeichnis erstellen.

+0

Hallo, ich habe das gleiche Problem. Meine Festplatte hatte keinen Speicherplatz mehr, bevor der Git das Klonen beenden konnte. Jetzt weiß ich nicht, wo ich den alten Klon löschen soll. Ich war in ~ Verzeichnis, wenn ich GIT ausführe, aber es gibt keinen .git Ordner in ~ oder /. Was soll ich machen? Danke dir. –

+1

Ich weiß nicht, warum es kein .git-Verzeichnis geben würde. Hast du 'ls -ld .git' versucht, als du in ~ warst? –

+0

Hallo, danke für deine Antwort. Ich habe den Klon noch immer nicht gefunden, aber der zweite Git ist erfolgreich und der .git-Ordner wird in '~/common/.git' gespeichert (' common' ist der Name des Pakets). Ich gehe davon aus, dass GIT unfertige Jobs in einem temporären Ordner speichert und bei Erfolg in das aktuelle Verzeichnis zurücküberträgt. Ich hoffe nur, dass es nicht erfolgreiche Downloads gelöscht hat. –

6

im Stammverzeichnis des Projektes gibt es ein verstecktes .git Verzeichnis, die Konfiguration enthält, das Repository usw.

+4

ein verstecktes Verzeichnis macht sehr viel Sinn. Das habe ich vermutet, aber ich konnte es im Terminal nicht sehen. Anscheinend läuft 'ls' nicht genug. Sie müssen 'ls -a' ausführen, um auch versteckte Dateien anzuzeigen. –

+2

Das ist richtig. Und versteckt ist einfach definiert als "beginnt mit". –

+0

Dass "dotfiles" versteckt sind, ist wahrscheinlich nur für diejenigen offensichtlich, die mit * nix basierten Systemen vertraut sind, aber ja. –

2

In einem .git Verzeichnis im Stammverzeichnis des Projektes. Im Gegensatz zu einigen anderen Versionskontrollsystemen, insbesondere CVS, gibt es in keinem der Unterverzeichnisse zusätzliche Verzeichnisse.

25

Um ein bisschen mehr vollständig zu sein, Git arbeitet mit:

  • der Arbeits Baum (die Wurzel von dem Wesen, wo Sie einen git init gemacht) "an die Git-RepositoryPfad"
  • (wo es ein .git, die die Revisionen aller Dateien gespeichert werden)

GIT_DIR ist eine Umgebungsvariable, die ein absoluter Pfad oder ein relativer Pfad zum aktuellen Arbeitsverzeichnis sein kann.

Wenn es nicht definiert ist, der „Pfad zum Git Repository“ ist standardmäßig im Stammverzeichnis Ihres Arbeits Baumes (wieder, in dem Sie ein git init gemacht).

Sie können tatsächlich von jedem beliebigen Ort aus Ihrer Festplatte alle Git-Befehl ausführen, sofern Sie den Arbeitsbaumpfad angeben und den Git Repository-Pfad:

git command --git-dir=<path> --work-tree=<path> 

Aber wenn man sie in einem der Unterverzeichnisse eines Git ausführen Repository (ohne GIT-DIR oder Arbeitsbaumpfad angegeben), git wird einfach in den aktuellen und übergeordneten Verzeichnissen suchen, bis es eine .git finden, nehmen Sie dies auch das Stammverzeichnis Ihres Arbeitsbaums und verwenden Sie .git als den einzigen Container für alle Überarbeitungen Ihrer Dateien.

Hinweis: .git ist auch in Windows (msysgit) versteckt.
Sie müssten eine dir /AH machen, um es zu sehen.
git 2.9 (June 2016) allows to configure that.

+0

Sicher, aber wo sind die Versionen der Dateien Ihres Codes? Wenn ich Zweige vertausche, wie git git diese Zweiginformationen? Scheint vollständiger Antworten (vielleicht genauer Antworten "wo speichert git speichern _changes_" als die OP's?), Vielleicht [hier] (http://superuser.com/a/159338/114388) und [hier] (http: //stackoverflow.com/questions/5176225/are-gits-pack-files-deltas-rather-than-snapshots). Ich bin mir nicht sicher, ob das eine Bearbeitung wert ist. – ruffin

+0

@ruffin: gute Links, aber wie Sie bemerkt haben, nicht * genau * die Frage des OP. – VonC

13

Wenn Sie auf einer englischen Windows-Rechner, Git-Standardspeicherpfad C:\Documents and Settings\< current_user>\ werden sind, weil unter Windows bei C:\Documents and Settings\< current_user>\.git die Standard-Git lokalen Einstellungen befindet und so schafft Git einen separaten Ordner für jede repo/clone bei C:\Documents and Settings\< current_user>\ und es gibt alle Verzeichnisse von geklonten Projekt.

Zum Beispiel, wenn Sie Symfony installieren 2 mit

git clone git://github.com/symfony/symfony.git 

dem Symfony Verzeichnis und die Datei auf

C:\Documents and Settings\< current_user>\symfony\ 
+1

Sie sprechen über das 'HOME'-Verzeichnis von git bash. Wenn Sie das Verzeichnis wechseln, werden die geklonten Repositories natürlich in dem Verzeichnis erstellt, von dem Sie 'git clone' nennen. Was die Frage tatsächlich beantwortet, ist, dass git die Dateien in einem Ordner mit dem Namen '.git' im Repository speichert, wo auch immer Sie es zum Klonen gewählt haben. – Shahbaz

+0

auf 'Windows 8.1':' C: \ Users \ Benutzername \ .project_name' oder Aufruf von 'Run'' ... \. Project_name'. –

2

sein wird ich auch nicht meine git-Repository gefunden. Ich verwende Windows 8 und habe mein Repository (versehentlich) unter C:\Program Files (x86)\Git erstellt. Ich könnte den Repository-Ordner in bash sehen, aber nicht in cmd oder Windows Explorer.

Dann erinnerte ich mich an Windows "Virtual Store" -Funktion. Mein Repository-Ordner wurde tatsächlich unter C:\Users\<username>\AppData\Local\VirtualStore\Program Files (x86)\Git\<myrepo> erstellt und dort war mein .git Ordner!

+1

Wie Sie es richtig machen und den Ordner an die gewünschte Stelle bringen? Ich habe andere/ähnliche Probleme, aber alle im Zusammenhang mit Virtualstore denke ich. – Terry

+0

Unter Windows Vista und höher ist es einem Benutzer ohne Administratorrechte nicht erlaubt, eine Datei unter 'Programme' zu ​​erstellen, die allen Benutzern gemeinsam ist. Windows erstellt stattdessen die Datei im Ordner "VirtualStore" des Benutzers. Die einfachste Lösung besteht darin, das Erstellen von Dateien in eingeschränkten Ordnern zu vermeiden und stattdessen diese wie in "Dokumente" zu erstellen. – bouvierr

3

Ich bin auf Windows und fand meinen Standort, indem ich mit der rechten Maustaste auf das Git Bash Programm in meinem Startmenü klicke und Eigenschaften wähle. Auf der Registerkarte Verknüpfung wird der Wert "Start in:" angezeigt. Für mich war es %HOMEDRIVE%%HOMEPATH%, also öffnete ich eine CMD-Eingabeaufforderung und tippte echo %HOMEDRIVE%%HOMEPATH%, um den tatsächlichen Speicherort anzuzeigen.

-5

in der Regel geht es Ordner Dokumente in Windows: C: \ Users \ < "Name des Benutzerkontos"> \ Dokumente \ GitHub

+1

Github hat damit nichts zu tun. –