2017-05-09 3 views
0

Ich habe mit dem folgenden Befehl ein Git Repo geklont, aber den Klon unterbrochen, bevor alle Objekte empfangen wurden. Als ich den Klon unterbrach, war das neue Verzeichnis ('irgendein Projekt') noch nicht erstellt worden, aber Git sagt mir, dass ich 100 + MB Daten erhalten hatte. Wenn ich den Klon runto vervollständigen lassen würde, wären die Daten in 'einige Projekte', aber da 'irgendein Projekt' nie erstellt wurde, wo sind die Daten?Wo speichert git seine Objekte, bevor das Zielverzeichnis erstellt wird

git clone https://git.somehost.org/some-project.git

Cloning into 'some-project'... 
remote: Counting objects: 5646714, done. 
remote: Compressing objects: 100% (593005/593005), done. 
^Cceiving objects: 9% (510470/5646714), 106.60 MiB | 739.00 KiB/s 

Antwort

2

Git schafft den Klon Ziel und legt die Dateien in es, wie es geht. Wenn Sie den Klonprozess unterbrechen, entfernt Git das Klonziel und nimmt die Dateien mit.

1

Git speichert alles in Form von "Objekten". Diese leben unter .git/objects in Ihrem lokalen Repository. Im normalen Gebrauch sind diese Objekte Dateiinhalte ("Blobs"), Verzeichnislisten ("Bäume"), Commits, signierte Tags und verschiedene kleinere Dinge.

Alle Ihre heruntergeladenen Sachen sind auch dort.

In der Tat können Sie es einfach ansehen, wie es herunterlädt. Besorgen Sie sich ein sehr großes Repository (z. B. Rails oder was auch immer) und listen Sie während des Downloads alle Dateien in Ihrem neuen Repository auf (ls -lR rails).

Sie Dateien wie diese finden:

.git/objects/pack/tmp_pack_9UcqDb 

Ein „Pack“ ist nur ein Haufen von git Objekten in einer größeren Datei gepackt, für die Kompression/Speicheroptimierung.

Während Sie^C drücken, entfernt Git das neue erstellte Verzeichnis.

Verwandte Themen