2016-11-01 4 views
2

Ok Ich habe ein paar Beiträge hier auf git revert vs git rebase vs cherry-pick etc. gelesen. Ich möchte nur sicherstellen, dass ich es richtig, bevor Sie es anwenden.Git Rebase zum Löschen von Commits aus der Ferne

Ich habe zwei Zweige, Master und entwickeln.

Master war bei Festschreibung mit ID 1. Entwicklung war bei Festschreibung mit ID 10 sagen wir mal. (unter der Annahme, dass sie linear verlaufen, so entwickeln sich 2, 3, ..., 9,10 nur).

Zusammenführen entwickeln zu Master. Aber dann wurde mir klar, dass ich von diesem Punkt an nicht verschmelzen wollte. Aber nur bis ID 7.

A. Wie entferne ich IDs 8,9,10? Eine einfache git rebase wird richtig machen? Wird es in der Zukunft Probleme geben, wenn ich versuche, mich wieder zusammen zu entwickeln?

Antwort

1

Angenommen, Sie haben nichts anderes in master, die Sie nicht wollen, zu verlieren, da Sie fusionierte:

  1. Setzen Sie Ihren lokalen master auf den Punkt vor der Zusammenführung (id 1?): git reset --hard id1
  2. Merge von ID 7: git merge id7
  3. Kraft-schieben sie es auf dem Server: git push origin master (die üblichen Auswirkungen der Kraft-Druck-Anwendung.)

Wenn Sie anschließend die IDs 8, 9, 10 später zusammenführen möchten, können Sie das tun.

+0

Die üblichen Implikationen von Kraftdrücken gelten. –

+1

Ich habe diese Bemerkung hinzugefügt, danke – janos