Переключение веток
Тема дорожной карты · Изучи Git
Переключение веток в Git осуществляется с помощью команд git checkout <branch> и более современной git switch <branch>. Эти команды перемещают указатель HEAD на целевую ветку и обновляют рабочую директорию. Если у вас есть незакоммиченные изменения, которые конфликтуют с текущей веткой, Git не позволит вам переключиться, требуя либо закоммитить изменения, либо использовать команду git stash для временного сохранения изменений. В случае конфликта можно также использовать опцию -m для попытки трёхстороннего слияния.
Команда git switch -c <new> позволяет создать новую ветку и сразу переключиться на неё. Это удобно, когда нужно быстро создать и перейти на новую ветку для работы. Команда git checkout имеет множество функций, включая восстановление файлов и отсоединение HEAD от текущей ветки, поэтому для упрощения процесса в Git 2.23 была введена команда git switch, а также команда git restore для работы с файлами.
Как это работает
Переключение веток в Git осуществляется с помощью команд git branch <name> для создания новой ветки, git switch <name> или git checkout <name> для переключения на существующую ветку. Команда git switch -c <name> позволяет создать новую ветку и сразу переключиться на неё. Если вам нужно удалить ветку, вы можете использовать команды git branch -d <name> для удаления ветки, которая была успешно слияна, или git branch -D <name> для принудительного удаления ветки. Команда git branch -v выводит список всех веток с указанием последнего коммита каждой ветки.
Указатель HEAD в Git указывает на текущую ветку, а текущая ветка указывает на свой последний коммит, или "tip". Ветки в Git практически бесплатны, поэтому рекомендуется создавать отдельную ветку для каждой задачи или функции, чтобы избежать путаницы и обеспечить чистую историю коммитов.
Когда применять
Ветки в Git используются для отслеживания различных версий проекта. Рекомендуется создавать отдельную ветку для каждой отдельной задачи или функции, чтобы избежать конфликтов и обеспечить чистую историю коммитов. Конвенция именования веток, такой как feat/, fix/, docs/, помогает организовать и структурировать работу над проектом.
Удаление веток, которые были успешно слиты, помогает поддерживать чистую историю коммитов и упрощает управление проектом. Команда git fetch --prune очищает отслеживаемые удалённые ветки, которые были удалены на сервере. Команда git switch - позволяет быстро переключиться на предыдущую ветку, что удобно для быстрого переключения между ветками.
Типичные ошибки
Типичные ошибки при работе с переключением веток включают ветвление от неверной базы, что приводит к проблемам слияния в будущем. Долгоживущие ветки, которые расходятся от основной ветки, также могут вызвать проблемы слияния. Использование команды git checkout для переключения веток и отмены изменений файлов может привести к путанице, поэтому рекомендуется использовать команды git switch и git restore для более чёткого разделения функций.