(master) $ git pull origin master
однако он делает merge и оставляет «отметку».
(master) $ git pull --rebase origin master
что полностью заменяет содержимое репозитория на последнее актуальное (за исключеним локальных коммитов).
Правильно понял?
(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