Von Gast (nicht überprüft) , 29 April 2026

Der Shallow-Trade-off

Ein Shallow Clone (--depth=N) ladt nur die letzten N Commits herunter. Schneller, kleiner, aber mit Vorbehalten: viele historie-abhangige Operationen werden unmoglich oder falsch.

Grundlegender Aufruf

git clone --depth=1 https://example.com/repo.git
git clone --depth=50 --no-tags https://example.com/repo.git
git clone --shallow-since=2024-01-01 https://example.com/repo.git
git clone --shallow-exclude=v1.0.0 https://example.com/repo.git

Single-Branch

git clone --depth=1 --no-single-branch https://example.com/repo.git

Was bricht

  • git log stoppt an der Shallow-Grenze.
  • git blame ordnet tiefere Anderungen dem Grenz-Commit zu.
  • git bisect kann nur innerhalb des Shallow-Fensters suchen.
  • git merge-base kann fehlschlagen.

Spater erweitern

git fetch --unshallow
git fetch --depth=1000
git fetch --shallow-since=2023-01-01

CI-Muster

git clone --depth=1 --no-tags --filter=tree:0 \
  --branch "$CI_COMMIT_REF_NAME" "$CI_REPOSITORY_URL" .

Wann Shallow vermeiden

  • Release-Builds, die git describe einbetten.
  • SBOM/Lizenz-Scanner, die uber die Authorship laufen.
  • Bisect- oder Blame-Schritte in CI.

Haufige Fehler

--depth=1 in einer Release-Pipeline verwenden, die git describe ausfuhrt, und v0.0.0-unknown drucken.