Git Checkout
Последнее обновление
git checkout - это классическая команда для перемещения по репозиторию: переключение веток, создание ветки через -b, переход на конкретный коммит или восстановление файла. Она делает очень много, поэтому в новых версиях Git её задачи были разделены на git switch (ветки) и git restore (файлы). Оба варианта по-прежнему работают.
Попробуйте эти команды в терминальном playground - настоящая оболочка в вашем браузере, ничего не нужно устанавливать.
Синтаксис
| Command | What it does |
|---|---|
git checkout main | Переключиться на существующую ветку |
git checkout -b feature | Создать новую ветку и переключиться на неё |
git checkout <hash> | Перейти на конкретный коммит (отсоединённый HEAD) |
git checkout -- file.txt | Отменить изменения в файле (восстановить его) |
git checkout main -- file.txt | Восстановить один файл из другой ветки |
checkout vs switch vs restore
| Task | Old (checkout) | Modern |
|---|---|---|
| Переключить ветку | git checkout main | git switch main |
| Создать + переключиться | git checkout -b x | git switch -c x |
| Отменить изменения в файле | git checkout -- f | git restore f |
Частые вопросы о git checkout
Что делает git checkout?
Она перемещает вас по репозиторию. Чаще всего она переключает ветки (
git checkout main), но также может создать ветку (-b), перейти на конкретный коммит или восстановить файл до предыдущей версии. Поскольку она выполняет несколько разных задач, в современном Git появились git switch и git restore, чтобы их разделить.В чём разница между git checkout и git switch?
git switch - более новая, узконаправленная команда, которая только переключает (а с -c создаёт) ветки - понятнее и её сложнее использовать неправильно. git checkout делает это плюс восстанавливает файлы и переходит на коммиты. Для работы с ветками git switch main и git checkout main эквивалентны; используйте то, что предпочитает ваша команда.Как перейти на конкретный коммит?
Выполните
git checkout <hash>. Это переводит вас в состояние "отсоединённого HEAD" - вы просматриваете этот коммит, но не находитесь ни на одной ветке. Чтобы сохранить работу оттуда, создайте ветку: git switch -c newbranch. Чтобы вернуться, снова перейдите на ветку с помощью git switch main.Как отменить изменения в файле с помощью checkout?
Выполните
git checkout -- file.txt, чтобы отменить незакоммиченные изменения в этом файле и восстановить последнюю закоммиченную версию. В современном Git более понятный эквивалент - git restore file.txt. Обе команды отменяют ваши правки, поэтому убедитесь, что они вам не нужны.Можно ли попрактиковаться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнить
git checkout в настоящей оболочке в вашем браузере - ничего не нужно устанавливать. Бесплатный интерактивный курс по Git от Coddy также пошагово охватывает создание веток и переключение между ними.