Я бы с удовольствием написал более точную тему для этого вопроса, но сейчас я не могу выразить это лучше.
По сути, допустим, у вас есть репо, в котором у вас есть несколько веток, скажем, "master" и "mybranch".
Итак, допустим, вы на мастере:
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
Тогда вы делаете git pull
здесь; новые коммиты извлекаются как для master
ветви, так и для mybranch
. Поскольку вы уже находитесь в ветке master
, заголовок master
автоматически обновляется на git
до последнего принятого коммита.
Теперь предположим, что вы меняете ветку с помощью checkout:
$ git checkout mybranch
Switched to branch 'mybranch'
Your branch is behind 'origin/mybranch' by 2 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Теперь это то, что меня озадачивает - во время предыдущего опроса (очевидно) все последние коммиты - в том числе и в mybranch
- были найдены; иначе мой локальный мерзавец не "знал бы", что мой локальный филиал "отстает ... на 2 коммита".
Итак, мой вопрос: зачем мне снова делать «git pull», имея ненужную обратную передачу на сервер - когда у нас уже есть эти новые коммиты для mybranch
, загруженные? Разве нет «git update-head» или какой-нибудь команды, которая бы делала это локально, без обратной передачи на сервер?