git
git
git Commit Historie eines Branches entfernen
Den aktuellen Branch (im Beispiel ‘main’) auf den Stand bringen, der später im root der bereinigten Commit Historie stehen soll.
Als Zwischenschritt wird ein Branch (’temp_branch’) erzeugt. Durch den
Parameter --orphan hat dieser keine Commit Historie.
In diesem Branch alle Dateien Stagen (git add) und den initialen Commit
durchführen
Damit sind alle Projektdateien im neuen Branch enthalten, haben aber nicht die Commit Historie des anderen Branches.
Der alte Branch kann nun entfernt werden.
Und der aktuelle Branch auf den Namen des alten Branches umbenannt werden.
Bisher wurden die Änderungen nur an dem lokalen Repository vorgenommen und es
wurden Referenzen auf die Branches in einer Form geändert, dass andere Clones
des Repositories nicht mehr damit zurecht kommen. Dies würde man beim ersten
Push auf den Server beobachten, der die Änderungen ablehnt. Durch den
zusätzlichen Parameter --force lässt sich trotzdem der geänderte Stand des
Repositories pushen, allerdings müssen all diejenigen, die einen Clone des
Repositories haben diesen Parameter auch beim nächsten pull angeben um das
angepasste Repository zu laden.
Automatic rebase
Um einen git rebase mehrerer commits ohne manuelle Interaktion durchzuführen
kann das Editor Kommando gegen einen sed getauscht werden und damit bis auf
den ersten ‘pick’ alle weiteren gegen ein ‘squash’ getauscht werden.