Wie drückst du dein gesamtes Repository auf den ersten Commit zusammen?
Ich kann zum ersten Commit neu basieren, aber dann hätte ich 2 Commits. Gibt es eine Möglichkeit, auf den Commit vor dem ersten zu verweisen?
Wie drückst du dein gesamtes Repository auf den ersten Commit zusammen?
Ich kann zum ersten Commit neu basieren, aber dann hätte ich 2 Commits. Gibt es eine Möglichkeit, auf den Commit vor dem ersten zu verweisen?
Hier ist, wie ich das gemacht habe, nur für den Fall, dass es für jemand anderen funktioniert:
Denken Sie daran, dass es immer ein Risiko gibt, solche Dinge zu tun, und es ist nie eine schlechte Idee, einen sicheren Zweig zu erstellen, bevor Sie beginnen.
Fange mit dem Einloggen an
git log --oneline
Scrolle zum ersten Commit, kopiere SHA
git reset --soft <#sha#>
Ersetze <#sha#>
mit dem aus dem Log kopierten SHA
git status
Stelle sicher, dass alles grün ist, ansonsten führe git add -A
aus
git commit --amend
Alle aktuellen Änderungen am aktuellen ersten Commit ändern
Jetzt dieses Branch erzwungen pushen und es wird überschreiben, was da ist.
Der einfachste Weg ist, das Befehl update-ref
zu verwenden, um den aktuellen Branch zu löschen.
Sie können nicht git branch -D
verwenden, da es ein Sicherheitsmechanismus hat, der verhindert, dass Sie den aktuellen Branch löschen.
Dies versetzt Sie in den Zustand des 'initial commit', wo Sie mit einem frischen initial commit beginnen können.
git update-ref -d refs/heads/master
git commit -m "Neuer initial commit"
Kannst du den Link zu den Dokumenten dazu einfügen, damit jeder, der dies liest, nicht manuell danach suchen muss?
Erstelle ein Backup
git branch backup
Zurücksetzen auf den angegebenen Commit
git reset --soft <#root>
Dann alle Dateien zur Staging-Area hinzufügen
git add .
Commit ohne Aktualisierung der Nachricht
git commit --amend --no-edit
Neuen Branch mit zusammengeführten Commits in das Repository pushen
git push -f
@not2qubit nein, dies wird die vorherigen Commit-Nachrichten nicht erhalten. Anstelle von Commit #1, Commit #2, Commit #3 erhältst du alle Änderungen in diesen Commits in einem einzigen Commit #1 verpackt. Commit #1 wird der Commit sein, zu dem du zurückgesetzt hast. git commit --amend --no-edit
wird alle Änderungen am aktuellen Commit, der ist, ohne Bearbeitung der Commit-Nachricht bestätigen.
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.
45 Stimmen
@innaM - Es ist der ursprüngliche Commit, der den Git hervorgebracht hat. (Hofft, dass der Humor gut genug durch das Internet übertragen wird).
14 Stimmen
Für diejenigen, die später zu dieser Frage kommen, achten Sie darauf, die modernere Antwort zu verwenden.
1 Stimmen
Verwandt, aber kein Duplikat (
--root
ist tatsächlich nicht die beste Lösung zum Zusammenfassen aller Commits, wenn es viele davon gibt, die zusammengefasst werden müssen): Kombinieren der ersten beiden Commits eines Git-Repositorys?.1 Stimmen
^ diese moderne Antwort ist nicht die beste, bessere Lösung ohne Overhead ist stackoverflow.com/questions/1657017#23486788
2 Stimmen
Imo: das ist das Beste von @MrTux: stackoverflow.com/questions/30236694/….
0 Stimmen
Möglicher Duplikat von Die ersten beiden Commits eines Git-Repository zusammenführen?
2 Stimmen
Ich weiß, die Frage verlangt eine schnelle Lösung, aber man könnte auch: ´rm -rf .git´ und ´git commit -m"neue Nachricht"´.