Основи на сливането и изтриването на клонове на Git

Basics Git Merging



Разклоняването може да ви помогне да поддържате работата си организирана. Трябва обаче да можете да обедините работата си, за да направите работата съгласувана. Ако никога не обединявате и изтривате клоните, историята ви може да стане твърде хаотична, за да бъде разбрана.

Работа със сливане и изтриване на клони

Нека първо да създадем главен клон, да поставим няколко коммита, да създадем нов клон, наречен функции, да добавим няколко коммита, след което да се върнем към master и да се ангажираме отново. Ето командите:







$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: Функция 1“
$изхвърлен „Добавяне на функция 2“ >>feature.txt
$git добави -ДА СЕ
$git commit „C3: Функция 2“
$git checkoutмайстор
$изхвърлен „Отново промяна на Master“ >>design.txt
$git добави -ДА СЕ
$git commit „C4: Основно модифицирано“

Горните команди създадоха следната ситуация:





Можете да проверите историята на двата клона, за да видите какви ангажименти имат:





$git състояние
На клона капитан
нищо за ангажиране, работната директория е чиста
$git log --една линия
2031b83 C4: Основно модифицирано
1c0b64c C1: Изпратен код

$git checkoutХарактеристика
Превключено към клон'Характеристика'

$git log --една линия
93d220b C3: Функция2
ad6ddb9 C2: Функция1
1c0b64c C1: Изпратен код
ec0fb48 C0: Стартиран проект

Сега да предположим, че искате да пренесете всички промени от клона на функциите в нашия главен клон. Ще трябва да стартирате процеса от местоназначението на сливането. Тъй като искаме да се слеем в главния клон, трябва да започнете процеса от там. Така че нека проверим главния клон:

$git checkoutмайстор
Превключено към клон'господар'

$git състояние
На клона капитан
нищо за ангажиране, работната директория е чиста

Сега нека създадем сливането:



$git mergeХарактеристика

Ако при сливането няма конфликти, ще се отвори текстов редактор с коментарите:

Обединяване на клон'Характеристика'

# Моля, въведете съобщение за ангажиране, за да обясните защо това сливане е необходимо,
# особено ако обедини актуализиран възходящ поток в клон на тема.
#
# Редовете, започващи с '#', ще бъдат игнорирани и празно съобщение ще се прекъсне
# ангажиментът.

Можете да промените коментарите или да приемете тези по подразбиране. Изходът за сливане трябва да показва резултати като този:

Обединяване, направено от„рекурсивен“стратегия.
feature.txt| 2++
1 файлпроменен,2вмъквания(+)
режим на създаване100644feature.txt

След сливането имате следното условие:

Ако проверите регистрационните файлове, ще откриете:

$git състояние
На клона капитан
нищо за ангажиране, работната директория е чиста

$git log --една линия
46539a3 C5: Обединяване на клона'Характеристика'
2031b83 C4: Основно модифицирано
93d220b C3: Функция2
ad6ddb9 C2: Функция1
1c0b64c C1: Изпратен код
ec0fb48 C0: Стартиран проект

Успешно сте обединили промените. Клонът на функциите обаче все още присъства.

$git клон -да се
Характеристика
*майстор

Можете да го изтриете със следната команда:

$git клон Характеристика

Ако проверите сега, трябва да видите само главния клон:

$git клон -да се
*майстор

Заключение

Редовно проверявайте за неизползвани клонове и ги изтривайте. Искате да поддържате хранилището си чисто, за да улесните навигацията и разбирането.

Допълнителна информация: