Основы Git слияния и удаления веток

Basics Git Merging



Ветвление может помочь вам организовать вашу работу. Однако вам нужно иметь возможность объединять свои работы, чтобы сделать работу последовательной. Если вы никогда не объединяете и не удаляете ветки, ваша история может стать слишком хаотичной для понимания.

Работа со слиянием и удалением ветки

Давайте сначала создадим основную ветку, сделаем несколько коммитов, создадим новую ветку с именем features, добавим несколько коммитов, затем вернемся к мастеру и снова сделаем коммит. Вот команды:







$mkdirмоя игра
$CDмоя игра
$git init
$выбросил «Проектное решение 1: Brainstarm» >>design.txt
$git добавить
$git commit 'C0: Начатый проект'
$выбросил «Проектное решение 2: напишите код» >>design.txt
$git добавить
$git commit 'C1: отправленный код'
$git веткаОсобенности
$git checkoutОсобенности
$выбросил 'Добавить функцию 1' >>feature.txt
$git добавить
$git commit 'C2: Feature 1'
$выбросил 'Добавить функцию 2' >>feature.txt
$git добавить
$git commit 'C3: Feature 2'
$git checkoutмастер
$выбросил «Снова модифицируем мастера» >>design.txt
$git добавить
$git commit 'C4: Master Modified'

Вышеупомянутые команды создали следующую ситуацию:





Вы можете проверить историю двух веток, чтобы узнать, какие у них есть коммиты:





$git статус
О мастере филиала
ничего не фиксировать, рабочий каталог чист
$git журнал --одна линия
2031b83 C4: Модифицированный Мастер
1c0b64c C1: Отправленный код

$git checkoutОсобенности
Перешел на ветку'Особенности'

$git журнал --одна линия
93d220b C3: Характеристика2
ad6ddb9 C2: Функция1
1c0b64c C1: Отправленный код
ec0fb48 C0: Проект запущен

Теперь предположим, что вы хотите перенести все изменения из ветки функций в нашу главную ветку. Вам нужно будет начать процесс с места назначения слияния. Поскольку мы хотим слиться с основной веткой, вам нужно инициировать процесс оттуда. Итак, давайте посмотрим на главную ветку:

$git checkoutмастер
Перешел на ветку'мастер'

$git статус
О мастере филиала
ничего не фиксировать, рабочий каталог чист

Теперь давайте создадим слияние:



$git mergeОсобенности

Если в слиянии нет конфликтов, откроется текстовый редактор с комментариями:

Объединить ветку'Особенности'

# Пожалуйста, введите сообщение фиксации, чтобы объяснить, почему это слияние необходимо,
# особенно если он объединяет обновленный апстрим в тематическую ветку.
#
# Строки, начинающиеся с '#', будут игнорироваться, а пустое сообщение прерывается
# фиксация.

Вы можете изменить комментарии или принять комментарии по умолчанию. Результат слияния должен выглядеть следующим образом:

Слияние, сделанное'рекурсивный'стратегия.
feature.txt| 2++
1 файлизмененный,2вставки(+)
создать режим100644feature.txt

После слияния у вас будет следующее условие:

Если вы проверите журналы, вы найдете:

$git статус
О мастере филиала
ничего не фиксировать, рабочий каталог чист

$git журнал --одна линия
46539a3 C5: Объединить ветвь'Особенности'
2031b83 C4: Модифицированный Мастер
93d220b C3: Характеристика2
ad6ddb9 C2: Функция1
1c0b64c C1: Отправленный код
ec0fb48 C0: Проект запущен

Вы успешно объединили изменения. Однако функциональная ветка все еще присутствует.

$git ветка
Особенности
*мастер

Вы можете удалить его с помощью следующей команды:

$git ветка -dОсобенности

Если вы проверите сейчас, вы должны увидеть только главную ветку:

$git ветка
*мастер

Заключение

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

Дальнейшее чтение: