Работа с обединяване и изтриване на клонове
Нека първо да създадем главен клон, да поставим няколко фиксации, да създадем нов клон, наречен функции, да добавим няколко фиксации, след това да се върнем към мастер и да извършим отново. Ето командите:
$ mkdir mygame$ cd mygame
$ git init
$ echo "Решение за дизайн 1: Brainstarm" >> дизайн.текст
$ git add -A
$ git commit -m "C0: Стартиран проект"
$ echo "Решение за дизайн 2: Напишете код" >> дизайн.текст
$ git add -A
$ git commit -m "C1: Изпратен код"
$ git характеристики на клона
$ git checkout функции
$ echo "Добавяне на функция 1" >> функция.текст
$ git add -A
$ git commit -m "C2: Функция 1"
$ echo "Добавяне на функция 2" >> функция.текст
$ git add -A
$ git commit -m "C3: Функция 2"
$ git checkout master
$ echo "Промяна на мастер отново" >> дизайн.текст
$ git add -A
$ git commit -m "C4: Master Modified"
Горните команди създадоха следната ситуация:
Можете да проверите историята на двата клона, за да видите какви ангажименти имат:
$ git статусНа клона майстор
няма нищо за ангажиране, работната директория е чиста
$ git log --oneline
2031b83 C4: Master Modified
1c0b64c C1: Подаден код
$ git checkout функции
Превключено към „функции“ на клон
$ git log --oneline
93d220b C3: Функция 2
ad6ddb9 C2: Функция 1
1c0b64c C1: Подаден код
ec0fb48 C0: Стартиран проект
Сега нека предположим, че искате да внесете всички промени от разклонението на характеристиките в нашия главен клон. Ще трябва да започнете процеса от местоназначението на сливането. Тъй като искаме да се слеем в главния клон, трябва да стартирате процеса от там. Така че нека проверим главния клон:
$ git checkout masterПревключено към клон „master“
$ git статус
На клона майстор
няма нищо за ангажиране, работната директория е чиста
Сега нека създадем сливането:
$ git функции за сливанеАко няма конфликти в сливането, ще получите текстов редактор с коментари:
Обединяване на клон „функции“# Моля, въведете съобщение за ангажиране, за да обясните защо е необходимо това сливане,
# особено ако обединява актуализиран нагоре поток в клон на тема.
#
# Редове, започващи с '#', ще бъдат игнорирани и празно съобщение ще се прекъсне
# ангажирането.
Можете да модифицирате коментарите или да приемете тези по подразбиране. Изходът за сливане трябва да показва резултати като този:
Обединяване, направено от "рекурсивната" стратегия.особеност.txt | 2 ++
1 файл е променен, 2 вмъквания (+)
функция за създаване на режим 100644.текст
След сливането имате следното условие:
Ако проверите дневниците, ще намерите:
$ git статусНа клона майстор
няма нищо за ангажиране, работната директория е чиста
$ git log --oneline
46539a3 C5: Обединяване на разклонения „функции“
2031b83 C4: Master Modified
93d220b C3: Функция 2
ad6ddb9 C2: Функция 1
1c0b64c C1: Подаден код
ec0fb48 C0: Стартиран проект
Успешно сте обединили промените. Клонът на функциите обаче все още присъства.
$ git клон -aХарактеристика
* майстор
Можете да го изтриете със следната команда:
$ git клон -d функцииАко проверите сега, трябва да видите само главния клон:
$ git клон -a* майстор
Заключение
Уверете се, че редовно проверявате за неизползвани клонове и ги изтривате. Искате да поддържате хранилището си чисто, за да улесните навигацията и разбирането.
Допълнителна информация:
- https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging