Solange Sie einen vollständigen Verlust der Geschichte als kein Problem betrachten, ist der von Ajay vorgeschlagene Ansatz vollkommen gültig. Aber wenn Sie die Geschichte Ihres flachen Klons beibehalten möchten, habe ich einen anderen Vorschlag.
Ein flacher Klon gibt vor, durch die Verwendung eines so genannten graft point zu fälschen die Eltern der „ersten“ verpflichten sich die vollständige Geschichte haben.
Wenn wir davon ausgehen, dass wir die volle Geschichte zur Verfügung haben, könnten wir die Frage anders formulieren: How can I throw away the history before a specific revision?
Dies bedeutet, dass wir eine Kombination aus einem Pfropf-Punkt verwenden können und git filter-branch
(wie in der verknüpften Frage vorgeschlagen). Sie müssen jedoch beachten, dass dies Ihre gesamte Geschichte umschreibt, wodurch die neue Geschichte mit der Fernbedienung unvereinbar wird, von der wir ursprünglich geklont haben. Aus diesem Grund sollten wir die alte Fernbedienung aus unserem Repository entfernen.
git remote remove <old-remote-name>
Jetzt können wir unsere Neufassung beginnen. Nehmen wir an, wir wollen Master den neuen Root für das Repository committen.
Dies wird den gesamten Verlauf unseres Repositorys überschreiben, wobei der aktuelle Master als neuer Root committiert wird. Sie können das Neuschreiben abschließen, indem Sie die "Backup" -Referenzen in refs/original
entfernen. Außerdem können Sie jetzt die Datei .git/shallow
löschen.
Nachdem Sie dies getan haben, sollten Sie in der Lage sein, die jetzt ungepfropfte Geschichte in Ihrer neuen Fernbedienung zu schieben.
Es wird höchstwahrscheinlich alle Submodule entfernen. –
@AleksanderAlekseev über welche Submodule sprichst du? – Willa
Wenn Sie die Historie nicht benötigen, ist dies die einfachste Lösung. – Willa