git checkout -- Переключение веток
Команда git checkout переключает между ветками (или коммитами). При переключении веток Git обновляет ваш рабочий каталог, чтобы он соответствовал последнему коммиту ветки.
Переключение веток
git checkout feature
Это перемещает HEAD на ветку feature и обновляет ваши файлы.
Создание + переключение в одно действие
git checkout -b new-feature
Это сокращение, которое создаёт новую ветку и сразу переключается на неё. Это самый распространённый способ начать работу над чем-то новым.
Современная альтернатива: git switch
В Git 2.23 появилась команда git switch как более понятная альтернатива:
git switch feature # переключиться на существующую ветку
git switch -c new-feature # создать и переключиться
Обе команды checkout и switch работают -- используйте ту, которая вам больше нравится.
Попробуйте!
В вашем репозитории есть один коммит в main. Отработайте полный рабочий процесс с ветками:
- Создайте и переключитесь на новую ветку:
git checkout -b feature - Создайте файл и сделайте коммит:
echo "feature work" > feature.txt, затемgit add feature.txt, затемgit commit -m "Add feature" - Вернитесь на main:
git checkout main - Обратите внимание, что
feature.txtисчез -- он существует только в веткеfeature!
Наблюдайте, как граф обновляется при создании коммитов в разных ветках.
Отделённый HEAD
Если вы переключаетесь на конкретный коммит (а не на ветку), вы попадаете в состояние отделённого HEAD:
git checkout abc1234
В этом состоянии новые коммиты не будут принадлежать ни одной ветке. Это полезно для просмотра старого кода, но не делайте коммиты в этом состоянии, если не знаете, что делаете.