Ich muss alle meine Commits in einen einzigen Snapshot setzen, um ihn in einem github Repo zu veröffentlichen. Ich weiß, dass ich dafür dies
Meine erste Frage ist, dass ich es mit einem externen Repository teilen möchte und sage:
Ein Wort der Warnung: Tun Sie dies nur bei Commits, die nicht gedrückt wurden externes Repository Wenn andere auf der Grundlage dieser Verpflichtung arbeiten Sie werden löschen, viele Konflikte können auftreten. Tu es einfach nicht Schreiben Sie Ihre Geschichte neu, wenn sie mit anderen geteilt wurde.
und was passiert, ich möchte alle meine Commits in einem einzigen setzen, wie man das macht:
Ich habe das auch gefunden:
%Vor%aber nichts passiert:
%Vor% Dies erreichen Sie am einfachsten mit dem Befehl rebase
.
Stellen Sie sich vor, Sie haben dieses Repository:
%Vor% Sie haben also einen Test mit den Commits af28aeb Another test
und a680317 Try something
durchgeführt. Wir wollen sie nach d93792b Edit both files
zerquetschen, um das Repository zu bereinigen.
Um das zu tun, wird der Befehl sein
git rebase -i d93792b
Dabei steht -i
für den Eintritt in den interaktiven Modus und d93792b
für den Commit-Hash, für den wir den vorherigen übernehmen möchten.
Hinweis: Falls Sie alle Ihre Commits wie den ersten quetschen möchten, müssen Sie git rebase --root -i
Dieser Befehl zeigt Ihnen Folgendes:
%Vor%Sie müssen dem Rebase-Befehl mitteilen, was Sie tun möchten. In diesem Fall empfehle ich Ihnen, das erste Commit neu zu schreiben und das zweite wie folgt zu quetschen:
%Vor%Dann wird Ihre Textbearbeitung geöffnet, um die neue Commit-Nachricht zu setzen.
%Vor% Jetzt müssen Sie git commit --amend
und git rebase --continue
um den Prozess zu beenden.
Und Ihr Repository wird so aussehen:
%Vor%