2016-08-04 41 views
0

Vielleicht habe ich den falschen Ansatz zu GitFlow ...Wie Feature Zweig entfernen in Git/Bitbucket entwickeln

Ich benutze Bitbucket (git) mit GitFlow Workflow.

Ich mag würde wissen, ob es möglich ist, vollständig mit der Entwicklung Zweigquellenänderungen eines Zweiges nach einer Verschmelzung entfernen auch nach anderen Zweig Merkmale

bearbeiten verschmolzen wurden: Ich versuche, besser zu erklären. Ich möchte keinen Feature-Zweig löschen. Ich möchte alle Änderungen entfernen, die vom Feature-Zweig ausgelöst werden.

Ich denke, dass ich wiederherstellen kann, wenn mein Feature-Zweig die letzte Operation ist. Aber wenn: - ich die Zusammenführung meiner Feature-Zweig getan haben auf die Entwicklung Zweig - andere Funktionen haben sich auf die Entwicklung Zweig

verschmolzen und erst nach dieser Operation ich brauche, ohne verloren jede meine erste Funktion entfernen andere Funktionen, ist es möglich?

Danke, Ruggero

+1

Mögliches Duplikat von [Löschen Niederlassungen in Bitbucket] (http://stackoverflow.com/questions/15150671/delete-branches-in-bitbucket) –

Antwort

1

In Ihrer Frage interpretieren, so dass Sie die Zusammenführung Ihrer featurebranch in develop rückgängig machen möchten.

Dies sollte möglich sein

git checkout develop 
git revert mergecommit -m 1 

Verwendung Wo mergecommit der Hash-Wert des actuall ist commit fusionieren (wie durch git log gezeigt).

Es gibt eine Einschränkung in git help revert:

-m parent-number, --mainline parent-number 
     Usually you cannot revert a merge because you do not know which side of the merge should be considered the 
     mainline. This option specifies the parent number (starting from 1) of the mainline and allows revert to reverse 
     the change relative to the specified parent. 

     Reverting a merge commit declares that you will never want the tree changes brought in by the merge. As a 
     result, later merges will only bring in tree changes introduced by commits that are not ancestors of the 
     previously reverted merge. This may or may not be what you want. 

So:

  • Sie benötigen, um herauszufinden, welche Seite des Merge Sie auswählen möchten. git log, suchen Sie nach der Linie Merge: aaaaa bbbbb und wählen Sie -m 1 oder -m 2 entsprechend.
  • Sie können die Option -n Option zur Verfügung stellen, um die automatische Festschreibung zu vermeiden, nur um ein bisschen Ärger zu vermeiden, falls es schief geht.
+0

Dank! Ich habe meine Frage bearbeitet ... Ist es möglich zu entfernen, auch wenn andere Funktionen nach mir zusammengeführt haben? Danke –

+0

Ja, es ist möglich. Es wird den Verlauf nicht bearbeiten, aber Sie werden ein neues Commit erstellen, das die Änderung praktisch rückgängig macht. Natürlich haben Sie vielleicht oder nicht viele Konflikte, wenn Sie Pech haben. – AnoE