От мастера я создал ветку А, потому что хотел добавить новую функцию. После завершения функции я передал все до этого момента. Но потом я продолжал работать над веткой и теперь понимаю, что все, что я сделал, так как этот коммит имел бы более логичный смысл в новой ветке, назовем ее B, вне master.
Теперь я, очевидно, могу зафиксировать свои изменения в A, перенести их в master, затем разветвить master, вызвать его B и продолжить. Но что, если я действительно хочу сохранить вещи в чистоте и предпочел бы перенести мой последний коммит из A в master, затем создать ветку B, а затем вытащить мои незафиксированные изменения, которые я сейчас имею в A?