Wenn Sie keine Änderungen vorgenommen haben
Wenn Ihre Änderungen mit dem anderen Zweig kompatibel sind
Dies ist bei der Frage der Fall, da das OP einen neuen Zweig festschreiben möchte und dies auch gilt, wenn Ihre Änderungen mit dem Zielzweig kompatibel sind, ohne ein Überschreiben auszulösen.
Wie in der akzeptierten Antwort von John Brodie können Sie einfach den neuen Zweig auschecken und die Arbeit übernehmen:
git checkout -b branch_name
git add <files>
git commit -m "message"
Wenn Ihre Änderungen nicht mit dem anderen Zweig kompatibel sind
Wenn Sie den Fehler erhalten:
error: Your local changes to the following files would be overwritten by checkout:
...
Please commit your changes or stash them before you switch branches
Dann können Sie Ihre Arbeit verstecken, einen neuen Zweig erstellen, dann Ihre Änderungen speichern und die Konflikte lösen:
git stash
git checkout -b branch_name
git stash pop
Es ist, als hätten Sie diese Änderungen nach dem Erstellen des neuen Zweigs vorgenommen. Dann können Sie wie gewohnt festlegen:
git add <files>
git commit -m "message"
Wenn Sie Änderungen festgeschrieben haben
Wenn Sie die Commits im ursprünglichen Zweig behalten möchten
Siehe die Antwort von Carl Norum mit Kirschernte, die in diesem Fall das richtige Werkzeug ist:
git checkout <target name>
git cherry-pick <original branch>
Wenn Sie die Commits nicht im ursprünglichen Zweig behalten möchten
Siehe die Antwort von joeytwiddle zu diesem potenziellen Duplikat . Führen Sie einen der oben genannten Schritte aus und rollen Sie den ursprünglichen Zweig zurück:
git branch -f <original branch> <earlier commit id>
Wenn Sie Ihre Änderungen auf eine freigegebene Fernbedienung wie GitHub übertragen haben, sollten Sie dieses Rollback nur versuchen, wenn Sie wissen, was Sie tun.