2009-10-06 13 views
5

Sagen Sie einfach, Sie haben einen Entwicklungszweig mit 100 meist sinnlosen Commit/Protokollnachrichten. Ist es möglich, den Dev-Zweig mit dem Master/Kopf zusammenzuführen und nur eine Log-Nachricht im Master-Zweig zu haben? dh eine Protokollmeldung auf dem Kopf-/Master-Zweig könnte lauten: "Fügt Features XYZ hinzu"Verschmelzen dev Zweig zu Kopf mit nur einer Protokollnachricht

Es scheint, dass es zwei richtige Antworten gibt. Mit Squash können Sie alle Commits des Master-Zweiges ausblenden. Mit dem interaktiven Relay können Sie ausgewählte Teile des Verlaufs aus dem Master-Zweig ausblenden.

+2

Obwohl dies möglich ist, überlegen Sie, ob Sie * wirklich * wollen alle diese Geschichte zu verlieren. Der Verlauf kann später nützlich sein, etwa wenn Sie versuchen, die Einführung eines Fehlers zu finden. –

+0

Doh! So wie ich es verstehe, sind beide Antworten technisch korrekt. Squash ermöglicht es Ihnen, den gesamten Verlauf im Wesentlichen zu verbergen, und Rebase ermöglicht es Ihnen, einfach den Verlauf zu ändern. – corydoras

Antwort

9

git-merge --squash gefolgt von git commit sollte dies tun.

(More documentation on git-merge)

+0

Ich denke, das ist die Antwort auf meine Frage, auch wenn die Verwendung der Rebase-Option ist wahrscheinlich eine bessere Sache zu tun. – corydoras

+0

Ich denke, man muss danach 'git commit' machen? –

+0

Danke, das ist absolut richtig. – Phil

7

Es klingt wie git rebase --interactive ist das, was Sie brauchen. This section des Git Book erklärt:

Sie können auch interaktiv rebasen. Dies wird oft verwendet, um Ihre eigenen Commit-Objekte neu zu schreiben, bevor Sie sie irgendwo schieben. Es ist eine einfache Möglichkeit zum Teilen, Zusammenführen oder Neuanordnen von Commits vor teilen sie mit anderen. Sie können auch verwenden es zu bereinigen Commits Sie haben von jemandem gezogen, wenn Sie sie lokal anwenden.

+3

'Git Rebase -i' ist eines der größten Dinge, die ich je gelernt habe. –

+1

Danke! Ich werde einen Punkt machen, um dies zu lernen – corydoras

+1

Einverstanden. Du willst nicht quetschen (Geschichte zerstören), wenn du stattdessen die Geschichte umschreiben kannst, um sie übersichtlich und trotzdem nützlich zu machen. Plus interaktive Rücklagen machen Sie sich so mächtig fühlen. – Cascabel

Verwandte Themen