Работа со слиянием и удалением ветки
Давайте сначала создадим основную ветку, сделаем несколько коммитов, создадим новую ветку с именем 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 ветка -к*мастер
Заключение
Убедитесь, что вы регулярно проверяете неиспользуемые ветки и удаляете их. Вы хотите, чтобы ваш репозиторий был чистым, чтобы облегчить навигацию и понимание.