Dieser Artikel basiert auf einer Idee aus http://honk.sigxcpu.org/con/Truncating_git_history.html.
Ein privates Git-Repository mit einer langen Git-Versionsgeschichte soll bspw. auf GitHub veröffentlicht werden. Üblicherweise erscheint das Repository dann inklusive kompletter Versionsgeschichte.
Ziel des hier beschriebenen Verfahrfens ist:
- Veröffentlichung ohne Versionsgeschichte
- Verfügbarhalten der Versionsgeschichte im lokalen Repository
Ausgangslage
Unsere Ausganglage ist diese:
- Wir haben ein lokales Git-Projekt
- Das Git-Projekt hat keine “offenen Dateien”:
1 2 3 |
|
- Das Git-Projekt hat eine längere Git-Versionsgeschichte:
1 2 3 4 |
|
- Der aktuell ausgecheckte Stand soll veröffentlicht werden ohne Versionsgeschichte.
Ablauf
Der für mich einfachste Ablauf ist dieser:
- Alten “master” wegschieben:
git branch -m master ancient-history
- Neuen “master” erzeugen:
git checkout --orphan master
- Neuen “master” wegschreiben:
git commit -m "Initial commit"
- “Kurze” Versionsgeschichte:
git log --oneline master
- “Lange” Versionsgeschichte:
git log --oneline master ancient-history