Находясь на нужной ветке выполните git rebase master
это уберет коммиты различающиеся с мастером, обновит ветку до состояния мастера и вернет убранные коммиты.
Или намержите мастер на свою ветку
Основная функция git checkout это перемещать указатель HEAD, т.е. то куда смотрит ваша локальная копия. Вы можете переместить его на вершину ветки: git checkout <branch> или на отдельный коммит: git checkout <sha>Ну а вспомогательные это создание веток:git checkout -b, отмена изменений в файле:git checkout -- <file>
Вы неправильно поняли второй вариант git pull --rebase origin master,
он убирает ваши локальные коммиты, обновляет ветку (обычно это fast-forward), и потом после обновления снова применяет ваши коммиты.
А git fetch обновляет ваш origin репозиторий, но не применяет полученные изменения с вашими рабочими копиями