Зачем мне нужно обновление hg после hg pull, а в git я делаю только git pull
В git
, чтобы вытащить и использовать последние изменения в моем локальном репозитории, я использую git pull
.
В hg
я также использую hg pull
, но затем он печатает
запустите 'hg update', чтобы получить рабочую копию
Я запускаю hg update
, но мне интересно, почему это отличие от git
?
Ответы
Ответ 1
Другие ответы на самом деле не отвечают на вопрос, а именно: почему бы не Git и Mercurial работать одинаково? Есть ли философская разница?
В Mercurial pull
противоположно push
: он синхронизирует локальное репо с удаленным репо, не касаясь рабочей копии. Поэтому он более последователен.
В Git, pull
есть fetch
плюс a merge
, или pull
плюс an update
в терминах Mercurial. Обычно это то, что вы хотите. Поэтому он более эффективен.
Диспетчер распределенной версии Control University имеет слайд на 4- минутной отметки, которая наглядно демонстрирует, как работает Mercurial. Michael Ernst Концепции управления версиями и лучшие практики имеет аналогичную диаграмму (см. Ниже):
![Distributed version control]()
Ответ 2
Потому что git pull
выполняет внутренние операции git fetch
и git merge
, тогда как hg pull
выполняет только то, что делает git fetch
. Просто сделайте hg pull -u
. См. Также эту таблицу эквивалентности команд.
Ответ 3
Чтобы получить эквивалентную функциональность git, активируйте расширение Mercurial (в комплекте с дистрибутивами Mercurial), см. расширение fetch. Он выполнит hg pull -u
.