2016-04-18 7 views
0

Ich arbeite gerade an einer Funktion, die ich in einem featureX Zweig tun soll, aber ich habe vergessen, diesen Zweig zu erstellen und in es zu überprüfen. Das verursacht jetzt ein Problem, weil das 2 verpflichtet bereits in meinem Team Remote Master Zweig (wir verwenden BitBucket) wie folgt:Wie können Commits, die bereits im Remote-Master-Zweig vorhanden sind, rückgängig gemacht und in einen anderen Zweig verschoben werden?

enter image description here

Wie verschiebe ich d40ef79 und 5e13fd7 in featureX Zweig so dass ich Arbeiten Sie weiter an diesem Zweig featureX und entfernen Sie diese 2 Commits von Master-Zweig, ohne die letzten von meinen Teamkollegen erstellten Commits zu verlieren (29ac4fb..1606c1a)?

Ich versuche erste Option innerhalb this answer und es funktioniert nicht für mich. Ich versuche auch git cherry-pick innerhalb featureX Zweig (Abzweig vom Master) - funktioniert auch nicht für mich.

Antwort

1

Die einfachste Möglichkeit besteht darin, eine Zurücksetzung durchzuführen.

git revert <SHA-1>

Rückgängig die git commit. Stellen Sie die Änderungen wieder her, die vom angegebenen Commit vorgenommen wurden.

reset and force push

# reset the branch to the desired commit 
git reset <SHA-1> 

Es gibt andere Wege als gut, aber sie sind weniger zu empfehlen (git push -f, git rebase, git filter-branch)


Wie die gewünschte hinzufügen verpflichten in verschiedene Zweige.

git cherry-pick <SHA-1>...<SHA-1>

die Änderung durch die commit an der Spitze des Master-Zweig eingeführt Nehmen und erstellen Sie mit dieser Änderung eine neue Commit (s).

Die Syntax des ... ist ein Commit-Bereich. Nimm alle Commits vom Start (Exclude) bis zum Letzten.

enter image description here


aus Lesen Sie die vollständige git cherry-pick documentation for all the options you can use