git: Commit auf einen anderen Branch verschieben

Gestern auf der Arbeit hatte ich ein kleines Problem.
Ich hatte mehrere größere Änderungen auf den master-Branch commited, welche eigentlich auf einen dev-Branch sollten. Als mir das aufgefallen ist habe ich einen weiteren Commit mit Änderung auf den dev-Branch commited. Außerdem musste ich einen Bugfix für den Code der letzten veröffentlichten Version machen, welcher auf dem master-Branch landen sollte.

Das ganze sah dann ungefähr so aus:
Übersicht der branches

Commit f7a29c2 sollte also verschoben werden, um auf dem master-Branch einen neuen commit auf den Stand von f508d98 machen zu können.

Das ist gar nicht so schwer, wie ich gedacht hätte. Zuerst muss man wieder auf den master wechseln und diesen auf den gewünschten Stand bringen:

git checkout master  
git reset --hard f508d98  

Wenn man jetzt pushed, dann möchte git vorher natürlich den aktuellen Stand holen und man hat wieder das Chaos, das beheben wollte. Um das zu umgehen macht man einen leeren Commit

git commit --allow-empty  

Anschließend muss das ganze gepushed werden. Damit ein pullen verhindert werden kann, wird der push erzwungen

git push -f  

Das Repository nach dem Verschieben der Commits Der commit f32a2c0 ist der leere Commit mit dem Stand von f508d98