2016-12-19 8 views
1

Auf meinem Git-Repository verwende ich einen Algorithmus, um jedem Commit eine oder mehrere eindeutige Versionsnummern zuzuordnen, basierend auf Branch-Namen und -Tags. Ich möchte diesen Mechanismus mit einem anderen großen Repository verwenden, das ich klonen möchte, ohne Dateien zu übertragen.Git Klon bare Repo ohne Blobs

Ein nackter Klon hilft mir, die Arbeitskopie der Blobs loszuwerden, aber sie lädt sie immer noch vom Server herunter. Ein oberflächlicher Klon mit überspringt die meisten Blobs, überspringt aber auch das Herunterladen der Metadaten für alle Commits außer einem.

Gibt es etwas wie git fast-export --no-data, das ich auf der Client-Seite verwenden kann, um die Diagramminformationen mit Commit-Metadaten und möglicherweise Dateinamen zu erhalten, ohne zuerst das Repository von meinem Server zu klonen? Idealerweise könnte ich auf die Metadaten wie jedes andere (leere, flache) Repo über git log|show|rev-parse|show-ref zugreifen.

(ich weiß, git LFS und git Anhang existieren und kann die Größe einiger repos zu reduzieren, aber ich kann sie nicht auf einem vorhandenen Repository verwenden, ohne sie zu verändern.)

Antwort

1

Gibt es so etwas wie git Fast-Export - keine Daten, die ich auf der Client-Seite verwenden kann?

No: neben git ls-remote (die Metadaten nur für die Köpfe der Remote-Repo bekommt), alles andere würde die volle Repo-Geschichte bekommen.

Sie müssten Ihr Repo von einem Git-Hostingdienst wie GitHub verwalten lassen, der eine API (wie die commits API) bereitstellt, um Metadaten ohne Daten abzufragen.