Когда нужен rebase - когда PR был сделан, но не принят сразу, а за это время авторы продвинули проект вперед.
скопировать ветку master
git fetch upstream/master
получить изменения с далёкого репозитория на сервере upstream в директорию .git
git checkout master
переключаемся на ветку master,
при этом выполняется два действия:
- локальные файлы заменяются на содержимое ветки (может не выполнится, если есть незакомиченные изменения)
- ветка переключается на указанную
если на ветку master не переключиться, то следующая команда запортит текущую ветку
git reset --hard upstream/master
HEAD is now at 946ee2f Update and rename msbuild-commands.md to publish.md
git rebase меняет id коммитов
Так что это хорошее время для того, чтобы привести историю ветки в логически удобный вид (например объединить всё в один коммит)