Komprimieren Sie alle Ihre Commits in einem, bevor Sie eine Pull-Anforderung in GitHub ausführen

8

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%     
anquegi 28.07.2015, 06:25
quelle

1 Antwort

18

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

verwenden

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%     
EnriMR 28.07.2015, 06:52
quelle

Tags und Links