Работа с ветками Git
git branch — список веток
Показывает все ветки в репозитории. Текущая ветка отмечена звёздочкой *.
git branch
Пример вывода:
main
* feature/login-screen
bugfix/button-color
Здесь вы находитесь в ветке feature/login-screen.
Чтобы увидеть только удалённые ветки (на сервере):
git branch -r
Чтобы увидеть все ветки — локальные и удалённые:
git branch -a
git checkout — переключение между ветками
Переключает рабочую директорию на указанную ветку.
Изменения в файлах сохраняются, если они не конфликтуют.
git checkout feature/login-screen
Если ветка ещё не существует локально, но есть на сервере — можно создать и переключиться сразу:
git checkout feature/login-screen
# если ветка не найдена локально — выдаст ошибку
Чтобы создать новую ветку и сразу переключиться:
git checkout -b feature/auth-google
checkout— многофункциональная команда: она может переключать ветки, восстанавливать файлы, и даже переходить к коммитам. Это может запутать новичков.
git switch — альтернатива checkout для переключения
Появилась в Git 2.23 как более понятная альтернатива для переключения веток.
Работает только с ветками — меньше шансов ошибиться.
git switch feature/login-screen
Создать новую ветку и переключиться:
git switch -c feature/auth-google
✅ Рекомендуется использовать
git switchдля переключения между ветками.
Оставьтеgit checkoutтолько для восстановления файлов или перехода к старым коммитам.
git merge — объединение веток
Объединяет изменения из одной ветки в текущую.
Работает только после переключения на целевую ветку.
Пример: вы закончили работу в feature/login-screen и хотите добавить изменения в main.
git switch main
git merge feature/login-screen
Если изменений нет в конфликте — Git сделает быстрое слияние (fast-forward).
Если в main были новые коммиты — Git создаст отдельный коммит слияния.
Пример вывода после успешного слияния:
Updating a1b2c3d..f9e8d7c
Fast-forward
src/screens/Login.js | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 src/screens/Login.js
Если возникает конфликт — Git остановится и попросит вас разрешить его вручную.
Файлы с конфликтами будут помечены специальными маркерами:
<<<<<<< HEAD
<Text>Войти</Text>
=======
<Text style={styles.bold}>Войти</Text>
>>>>>>> feature/login-screen
Разрешите конфликт — удалите маркеры, оставьте нужный код — затем:
git add src/components/Button.js
git commit
⚠️ Не делайте слияние в
mainс незавершёнными или неотлаженными фичами.
Всегда тестируйте ветку перед слиянием.