19 Stimmen

Git: Doppelte Blobs (Dateien) in diesem Baum finden

Dies ist eine Art Fortsetzung von この質問 .

Wenn es mehrere Blobs mit demselben Inhalt gibt, werden sie nur einmal im Git-Repository gespeichert, da ihre SHA-1-Werte identisch sind. Wie könnte man alle doppelten Dateien für einen bestimmten Baum finden?

Müssten Sie den Baum durchgehen und nach doppelten Hashes suchen, oder bietet Git Backlinks von jedem Blob zu allen Dateien in einem Baum, die darauf verweisen?

0voto

bart Punkte 1091

Für Windows-/PowerShell-Benutzer:

git ls-tree -r HEAD | group { $_ -replace '.{12}(.{40}).*', '$1' } | ? { $_.Count -gt 1 } | select -expand Group

Das Ergebnis ist etwa so:

100644 blob 8a49bcbae578c405ba2596c06f46fabbbc331c64    filename1
100644 blob 8a49bcbae578c405ba2596c06f46fabbbc331c64    filename2
100644 blob c1720b20bb3ad5761c1afb6a3113fbc2ba94994e    filename3
100644 blob c1720b20bb3ad5761c1afb6a3113fbc2ba94994e    filename4

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X