585 Stimmen

Wie lösche ich den gesamten Commit-Verlauf in Github?

Ich möchte den gesamten Commit-Verlauf löschen, aber den Code in seinem aktuellen Zustand belassen, da es in meinem Commit-Verlauf zu viele unbenutzte Commits gibt.

Wie kann ich das tun?

Gibt es einen Git-Befehl, mit dem dies möglich ist?

git filter-branch ?
git rebase ?
... 

Mein Code wird auf github.com gehostet.

1904voto

Das Löschen der .git Ordner kann zu Problemen in Ihrem Git-Repository führen. Wenn Sie den gesamten Commit-Verlauf löschen, den Code aber in seinem aktuellen Zustand belassen wollen, ist es sehr sicher, wie im Folgenden beschrieben vorzugehen:

  1. Kasse

    git checkout --orphan latest_branch

  2. Alle Dateien hinzufügen

    git add -A

  3. Übernehmen Sie die Änderungen

    git commit -am "commit message"

  4. Löschen Sie die Verzweigung

    git branch -D main

  5. Den aktuellen Zweig in main umbenennen

    git branch -m main

  6. Schließlich aktualisieren Sie Ihr Repository mit Gewalt

    git push -f origin main

PS: Ihre alte Commit-Historie bleibt dabei nicht erhalten

160voto

Amir Ali Akbari Punkte 5260

Wenn Sie sicher sind, dass Sie den gesamten Übertragungsverlauf entfernen möchten, löschen Sie einfach die .git im Root-Verzeichnis Ihres Projekts (beachten Sie, dass es versteckt ist). Initialisieren Sie dann ein neues Repository im selben Ordner und verknüpfen Sie es mit dem GitHub-Repository:

git init
git remote add origin git@github.com:user/repo

Übertragen Sie jetzt Ihre aktuelle Version des Codes

git add *
git commit -am 'message'

und schließlich die Aktualisierung auf GitHub erzwingen:

git push -f origin master

Ich empfehle jedoch, den Verlauf zu sichern (die .git Ordner im Repository), bevor Sie diese Schritte durchführen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X