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

Historie bearbeiten ohne sie umzuschreiben

Manchmal mochten Sie Historien zusammenspleissen (z.B. einen konvertierten Subversion-Import, der eine Fortsetzung trifft) ohne Commits umzuschreiben.

Grafts (Legacy)

# .git/info/grafts
<child-sha> <new-parent-sha>

Replace-Refs

git replace --graft <child> <new-parent>
git replace --graft v3.0.0 v2.99.0
git replace --convert-graft-file
git replace -d <sha>
git replace -l

Anwendungsfall: Imports zusammenfugen

git replace --graft $(git rev-list --max-parents=0 main | head -1) svn-history-tip

Teilen

git push origin 'refs/replace/*:refs/replace/*'

Vorubergehend deaktivieren

git --no-replace-objects log
GIT_NO_REPLACE_OBJECTS=1 git log

Haufige Fehler

Replace mit Umschreiben verwechseln — Replace andert keine Objekt-SHAs.