git fetch: посмотреть, что нового на сервере
Обновлено 31 июля 2026 г.
git fetch скачивает свежие коммиты с сервера, но не трогает ни твою ветку, ни файлы на диске. Это разведка: узнать, что происходит, и решить, вливать это сейчас или дописать свой кусок.
$ git fetch
From github.com:username/my-project
773e133..4f122d0 main -> origin/mainСтрока читается так: ветка main на сервере уехала с коммита 773e133 на 4f122d0, и локальный указатель origin/main теперь смотрит туда же. Твой рабочий каталог остался прежним, git status покажет то же, что и минуту назад, только с новой сводкой:
$ git status
On branch main
Your branch is behind 'origin/main' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)Что такое origin/main
origin/main выглядит как ветка, но твоя она только наполовину. Это локальный указатель на то, где ветка main находилась на сервере в момент последнего обмена. Лежит она на твоём диске, читается мгновенно и без сети, а двигают её только git fetch и git pull.
Раз это обычная точка в истории, по ней работают все привычные команды:
$ git log origin/main --oneline
4f122d0 rewrote the install section
773e133 first version
$ git log main..origin/main --oneline # только то, чего нет у тебя
4f122d0 rewrote the install section
$ git diff main origin/main --stat # какие файлы поедут
readme.txt | 1 +
1 file changed, 1 insertion(+)Отличие от pull
git pull - это git fetch плюс git merge одной командой. Fetch делает только первую половину, поэтому испортить им рабочий каталог нельзя: конфликта не будет, незакоммиченные правки не пострадают. Когда картина ясна, слияние делается вторым шагом через git merge origin/main или просто через git pull.
Флаг --prune заодно убирает указатели веток, которых на сервере уже нет:
$ git fetch --prune
From github.com:username/my-project
- [deleted] (none) -> origin/gone-branchЧастые ошибки
Первая - ждать, что после fetch изменятся файлы. Не изменятся. Команда обновляет указатели вида origin/main, а рабочий каталог остаётся там, где твой последний коммит.
Вторая - смотреть git log origin/main без свежего fetch. Указатель сам по себе не двигается, поэтому без обмена ты читаешь вчерашнюю картину и делаешь выводы по ней.
Где это в учебнике
Глава 6. GitHub: облако и совместная работа.
Потренироваться руками - в Песочнице: настоящий терминал с git и проверка шагов.