$ git reset --hard <another branch>
$ git reset --soft HEAD@{1}
$ git commit
При первом (жестком) сбросе содержимое другой ветви переносится в ваш рабочий каталог. Второй (мягкий) сброс помещает ваш указатель фиксации обратно на кончик вашей исходной ветви, но не изменяет файлы в вашем индексе вообще, оставляя их, как они были в другой ветви. Затем вы можете зафиксировать это состояние поверх последнего коммита вашей текущей ветки.