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?
Um dies zu tun, können Sie Ihr lokales Git-Repository auf das erste Commit-Hashtag zurücksetzen, damit alle Änderungen nach diesem Commit nicht übernommen werden, danach können Sie mit der Option --amend commiten.
git reset your-first-commit-hashtag
git add .
git commit --amend
Und dann den Namen des ersten Commits bearbeiten, falls erforderlich, und die Datei speichern.
Sagen wir, Sie haben 3 Commits in Ihrem Branch und er ist bereits auf den Remote-Branch gepusht worden.
Beispiel:
git log -4
Wird Ergebnisse wie folgt anzeigen:
Sie möchten Ihre letzten 3 Commits zu einem Commit zusammenführen und auf den Remote-Branch pushen. Hier sind die Schritte.
git reset --soft
Jetzt sind alle Commit-Änderungen integriert, aber nicht committet. Überprüfen Sie mit:
git status
Committen Sie alle Änderungen mit einer Nachricht:
git commit -m 'Details angeben'
Drücken Sie den einzelnen Commit gewaltsam auf den Remote-Branch:
git push -f
Ich mache es normalerweise so:
Stellen Sie sicher, dass alles festgelegt ist, und notieren Sie die neueste Commit-ID, falls etwas schief geht, oder erstellen Sie einen separaten Branch als Sicherungskopie
Führen Sie git reset --soft `git rev-list --max-parents=0 --abbrev-commit HEAD`
aus, um Ihren Head auf den ersten Commit zurückzusetzen, lassen Sie jedoch Ihr Index unverändert. Alle Änderungen seit dem ersten Commit werden nun bereit zur Übernahme angezeigt.
Führen Sie git commit --amend -m "initial commit"
aus, um Ihren Commit auf den ersten Commit zu ändern und die Commit-Nachricht zu ändern, oder wenn Sie die vorhandene Commit-Nachricht beibehalten möchten, können Sie git commit --amend --no-edit
ausführen
Führen Sie git push -f
aus, um Ihre Änderungen zu erzwingen
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"´.