Die beste Lösung ist die Erstellung eines neuen Zweigs mit --orphan
Option wie unten gezeigt
git checkout --orphan <branch name>
Auf diese Weise können Sie einen neuen Zweig erstellen und direkt in den neuen Zweig auschecken. Es wird ein Zweig ohne Eltern sein.
Standardmäßig wird die --orphan
Option entfernt nicht die Dateien im Arbeitsverzeichnis, so dass Sie die Dateien des Arbeitsverzeichnisses auf diese Weise löschen können:
git rm --cached -r
Was im Einzelnen die --orphan
tut:
--orphan <new_branch>
Erstellen Sie einen neuen verwaisten Zweig mit dem Namen <new_branch>
, gestartet von <start_point>
und wechseln Sie zu ihr. Der erste Commit, der auf diesem neuen Zweig gemacht wird, wird keine Eltern haben und er wird die Wurzel einer neuen Geschichte sein, die von allen anderen Zweigen und Commits völlig getrennt ist.
Der Index und der Arbeitsbaum werden so angepasst, als hätten Sie zuvor git checkout <start_point> ausgeführt. So können Sie eine neue Historie beginnen, die eine Reihe von Pfaden ähnlich wie <Startpunkt> aufzeichnet, indem Sie einfach git commit -a ausführen, um die Root-Übertragung vorzunehmen.
Dies kann nützlich sein, wenn Sie den Baum einer Übergabe veröffentlichen wollen, ohne die gesamte Historie zu veröffentlichen. Sie könnten dies tun, um einen Open-Source-Zweig eines Projekts zu veröffentlichen, dessen aktueller Baum "sauber" ist, aber dessen vollständige Historie proprietäre oder anderweitig belastete Code-Stücke enthält.
Wenn Sie einen unverbundenen Verlauf beginnen wollen, der eine Reihe von Pfaden aufzeichnet, die sich völlig von denen von <Startpunkt> unterscheiden, sollten Sie den Index und den Arbeitsbaum direkt nach dem Erstellen des verwaisten Zweigs löschen, indem Sie git rm -rf . von der obersten Ebene des Arbeitsbaums aus ausführen. Danach können Sie Ihre neuen Dateien vorbereiten, indem Sie den Arbeitsbaum neu bevölkern, indem Sie sie von einem anderen Ort kopieren, einen Tarball extrahieren, usw.