git pull или git pull --rebase?

(master) $ git pull origin master

однако он делает merge и оставляет «отметку».

(master) $ git pull --rebase origin master

что полностью заменяет содержимое репозитория на последнее актуальное (за исключеним локальных коммитов).

Правильно понял?

Вы неправильно поняли второй вариант git pull --rebase origin master, он убирает ваши локальные коммиты, обновляет ветку (обычно это fast-forward), и потом после обновления снова применяет ваши коммиты.

Если у вас нет ваших локальных коммитов в обновляемой ветке, то разницы нет, он сделает FF. Как я заметил, разница в том что, если у вас есть измененные файлы (не закоммиченные, а просто измененные, например конфиг какой-то), то git не позволит вам сделать pull --rebase пока не откатите внесенные изменения, а pull позволит, но только если не приходят изменения в измененном вами файле.

И команда git pull, оно не обновляет полностью всё. Она забирает все новые изменения с удаленного репозитория, помещает их в ваш origin, но сливает новые изменения только для текущей или указанной локальной ветки. Т. е. git pull [--rebase] origin master заберет все изменения с удаленного origin, применит к вашему origin и сольет изменения в локальный master.

При этом если пришли изменения в ветке live, то ваш локальный live и ваш origin/live будут отличаться пока вы не переключитесь на свой локальный live и не сделаете заново git pull или git merge origin/live. Иначе говоря git pull = git fetch git merge