news
Serverspace добавил возможность подключения S3 к сервису CDN
VB
11 октября 2023
Обновлено 9 октября 2023

Работа с ветками в Git: ветвление

Git

Описание и преимущества Git

Git – известное решение, используемое в процессе разработки практически любого ПО. Он фактически стал промышленным стандартом благодаря своему главному преимуществу – возможности работы с разными версиями исходного кода. Основная идея ветвления заключается в “версионировании” кода и работ с каждой веткой независимо от остальных. Этот подход также удобен для тестирования разрабатываемых функций, поскольку позволяет безопасно вносить в код любые изменения, не беспокоясь о поломке чего-то в рабочей версии. Далее мы расскажем, как работать с ветвями git.

Ветка представляет собой независимую последовательность коммитов, где последнее подтвержденное изменение выступает всего лишь “указателем”, который сохраняет историю действий в виде связанных друг с другом шагов. Ветка по умолчанию обычно называется “main” или “master”.

Создание ветки

Перед созданием структуры ветвления необходимо инициализировать собственно экземпляр git с помощью, например, такого набора команд:

mkdir /root/gitrepo && cd /root/gitrepo && git init && touch firstfile && git add firstfile && git commit -m "initial commit"

Следом уже можно приступать к созданию новой ветки:

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

Создание ветки - шаг 1

Наша ветка создана, но перед тем, как приступить к работе с ней, следует указать системе, что теперь мы будем работать именно с данной версией кода:

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

Создание ветки - шаг 2

Можно проверить, что ветка действительно создана и она является в данный момент “рабочей”:

git branch

Создание ветки - шаг 3

Сохранение изменений в ветку

Внесем некоторые изменения в наш проект:

echo "First changes" > newfile.one

Затем сохраним эти изменения:

git commit -m “First changes commit”[/code]

Сохранение изменений в ветку

Сравнение кода в ветках

Для просмотра различий в коде в разных ветках можно использовать такую команду:

git diff <одна_ветка>...<другая_ветка>

Сравнение веток

Мы увидим, что в нашу ветку был добавлен один файл, примененные на него разрешения, а также сообщение, содержащееся в коммите.

Слияние веток

Для отправки изменений из одной ветки разработки в другую используется функция “слияния” (merge). Для этого перейдите в ветку, куда нужно отправить изменения, выполните команду для слияния с веткой, в которой изначально содержались изменения, и сохраните работу:

git checkout master && git merge mynewbranch && git commit -m "merges one"

Слияние веток

Конфликты слияния и их разрешение

Если две ветки содержат файл с одинаковыми именами, но разным содержимым, при попытке их слияния возникнет конфликт. Давайте сымитируем и затем разрешим эту ситуацию.

echo "original content" > conflict.file  # Создаем новый файл

git add conflict.file   # Добавляем этот файл в "главную" ветку

git commit -m "Conflict simulation - master, step 1"    # Созраняем изменения в главной ветке

git checkout -b conflictbranch    # Создаем новую ветку и переключаемся на нее

echo "changed content" > conflict.file    # Изменяем файл

git add conflict.file   # Добавляем этот файл в индекс другой ветки

git commit -m "Conflict simulation - conflictbranch, change 1"    # Сохраняем изменения в альтернативной ветке

git checkout master    # Возвращаемся в главную ветку

echo "re-changed content" > conflict.file    # Вносим изменения еще раз

git add conflict.file   # Снова добавляем этот файл в индекс главной ветки. Необходимо выполнять эту операцию каждый раз, иначе возникнет ошибка

git commit -m "Conflict simulation - master, step 2"    # Фиксируем последние изменения

Разрешение конфликтов - шаг 1

Если мы попытаемся выполнить слияние этих веток, увидим ошибку:

Разрешение конфликтов - шаг 2

Чтобы решить эту проблему, нужно изменить файл с помощью любого редактора. После символа “стрелки” видны ветки, в которых находятся “конфликтующие” изменения:

Разрешение конфликтов - шаг 3

После “итогового” сохранения изменений можно снова, на этот раз уже успешно, выполнить слияние:

Разрешение конфликтов - итог

Удаление ветки

Для удаления ветки используйте такую команду:

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

Удаление ветки

ПРИМЕЧАНИЕ: Вы не сможете удалить ветку, которая является “активной” в данный момент (придется сначала переключиться на другую ветку). Также предупреждение появится, если ветка содержит незафиксированные изменения (этого уже можно избежать с помощью команды git branch -D <имя_ветки>).

Заключение

В этой инструкции мы рассмотрели основные преимущества Git, продемонстрировали основные функции ветвления, также показали как разрешать конфликты в процессе работы.

Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300

Вам также может быть интересно...