Git для новичков: ветки и слияние

Что такое ветки?

Представьте работу над крупным проектом с другими программистами. Разные разработчики занимаются разными частями: кто-то — админ-панель, кто-то — регистрацию на сайте. Вы, например, создаёте форум.

Можно создать папку «форум» в основном проекте, но это имеет недостатки:

  • Все изменения видны всем. Промежуточные коммиты и файлы видны всем разработчикам.
  • Взаимное отвлечение. Разработчики отвлекаются друг на друга.

Ветки решают эти проблемы. Ветка — отдельное ответвление от основного проекта. Изменения внутри ветки видны только тем, кто над ней работает.

Например, разработчики админ-панели создают свою ветку, разработчики форума — свою, и они не мешают друг другу.

Создание и переключение веток

Изначально существует главная ветка master. Для создания новой ветки используйте команду:

git branch <имя_ветки>

Например, для создания ветки forum:

git branch forum

Для переключения на созданную ветку:

git checkout <имя_ветки>

Например, для переключения на ветку forum:

git checkout forum

git status показывает текущую ветку (выделена зелёным цветом). Список всех веток:

git branch -a

Работа с веткой и коммиты

После переключения на ветку forum создадим папку forum, файл index.html в ней и файл forum.main.css в папке css. Добавим изменения в локальный репозиторий:

git add .

И выполним коммит:

git commit -m "Added forum folder"

Объединение веток

После работы над форумом переключимся на master:

git checkout master

Папка forum отсутствует на master, так как изменения из forum не влияют на неё.

Чтобы объединить forum с master:

git merge <имя_ветки>

Например:

git merge forum

Теперь папка forum появится на master. Ветка forum всё ещё существует, но её содержимое интегрировано в master.

Создание и переключение ветки одновременно

Ветку можно создать и переключиться на неё одновременно:

git checkout -b <имя_ветки>

Например:

git checkout -b admin

Эта команда создаст ветку admin и переключит на неё.

Ветки в Git позволяют организовать параллельную разработку, избегая конфликтов и упрощая совместную работу. Объединение веток интегрирует изменения из отдельных веток в основную ветку проекта.

Что будем искать? Например,программа