Основы ветвления Git
Возможность простого ветвления - одна из лучших особенностей Git. Создание веток в других системах контроля версий может быть дорогостоящим с точки зрения требований к пространству и обработке. Ветвление Git эффективно. Таким образом, пользователи более склонны использовать ветки в Git.
Ветвящийся рабочий процесс
Предположим, вы начали новый проект под названием myvideogame. Имеет единственную ветку. Имя по умолчанию начальной ветки в Git называется master. Он создается автоматически. Создадим репозиторий myvideogame Git.
$ mkdir myvideogame$ cd myvideogame
$ git init
Вы создали пустой репозиторий Git. Добавим наш дизайн.txt файл с некоторым текстом в нем.
$ echo "Решение 1: добавление изображений" >> design.текст$ echo "Решение 2: напишите код" >> дизайн.текст
$ git add -A
$ git commit -m "C0: добавлен файл дизайна"
Добавим еще несколько изменений:
$ echo "Решение 3: Тестовая игра" >> дизайн.текст$ git add -A
$ git commit -m "C1: измененный файл дизайна"
Если вы проверите историю, вы найдете:
$ git log --oneline6a09bd6 C1: измененный файл дизайна
5f18d89 C0: Добавлен файл дизайна
Если вы проверите статус Git и все созданные ветки (с помощью команды: git branch -a), вы увидите:
$ git statusО мастере филиала
ничего не фиксировать, рабочий каталог чист
$ git branch -a
* владелец
В настоящее время у вас следующая ситуация:
Вы сделали две фиксации в главной ветке.
Предположим, вы обнаружили ошибки при тестировании игры, но не хотите решать проблему в основной ветке, потому что пока не хотите возиться с исходным дизайном. Итак, вы можете создать новую ветку с именем bugfix:
Исправление ошибки в ветке $ gitТеперь, если вы проверите все ветки:
$ git branch -aИсправлена ошибка
* владелец
Теперь вы создали новую ветку с названием bugfix. Ситуацию можно представить так:
Однако звездочка (*) рядом с главной веткой означает, что вы все еще находитесь в главной ветке. Если вы внесете изменения, он все равно перейдет в главную ветку. Вы можете использовать команду checkout для изменения ветвей:
Исправление ошибки $ git checkoutПерешел на ветку bugfix
Вы можете проверить, какую ветку вы используете, с помощью команды status или «branch -a»:
$ git statusИсправление ошибки в ветке
ничего не фиксировать, рабочий каталог чист
$ git branch -a
* Исправлена ошибка
владелец
Теперь исправим ошибку:
$ echo "Исправление ошибки 1" >> дизайн.текст$ git add -A
$ git commit -m "C2: ошибка исправлена 1"
Вы создали такую ситуацию:
В главной ветке нет изменения C2. В этом легко убедиться, проверив историю двух веток.
Во-первых, история ветки исправления ошибок:
$ git statusИсправление ошибки в ветке
ничего не фиксировать, рабочий каталог чист
$ git log --oneline
e8f615b C2: Ошибка исправлена 1
6a09bd6 C1: измененный файл дизайна
5f18d89 C0: Добавлен файл дизайна
Затем вы можете переключиться на главную ветку и проверить ее историю:
$ git checkout masterПерешел на ветку master
$ git status
О мастере филиала
ничего не фиксировать, рабочий каталог чист
$ git log --oneline
6a09bd6 C1: измененный файл дизайна
5f18d89 C0: Добавлен файл дизайна
Вы можете видеть, что в основной ветке нет изменений из ветки с исправлениями ошибок.
Вы всегда можете создать новую ветку из текущей ветки, в которой вы находитесь. Предположим, вы хотите создать еще одну ветку, которая будет содержать экспериментальные функции. Вы можете создать ветку из master и добавить к ней экспериментальные функции:
$ git statusО мастере филиала
ничего не фиксировать, рабочий каталог чист
$ git ветка экспериментальная
$ git checkout экспериментальный
Перешел в ветку "экспериментальная"
$ git status
На отраслевом экспериментальном
ничего не фиксировать, рабочий каталог чист
$ echo "Добавление возможностей эксперимента" >> дизайн.текст
$ git add -A
$ git commit -m "C3: добавлены экспериментальные функции"
[экспериментальная 637bc20] C3: добавлены экспериментальные функции
1 файл изменен, 1 вставка (+)
Если вы проверите историю своей экспериментальной ветки, вы увидите:
$ git statusНа отраслевом экспериментальном
ничего не фиксировать, рабочий каталог чист
$ git log --oneline
637bc20 C3: добавлены экспериментальные функции
6a09bd6 C1: измененный файл дизайна
5f18d89 C0: Добавлен файл дизайна
Вы заметите, что у вас нет коммита C2, который был создан в ветке с исправлениями ошибок. Поскольку экспериментальная ветка создается из основной ветки, исправления ошибок в ней не отображаются. У вас следующая ситуация:
Заключение
Поздравления! Вы научились ветвиться.
Ветки Git легко и быстро создавать. Это одна из причин популярности Git. Если вы хотите стать опытным пользователем Git, вам необходимо хорошо разбираться в ветвлении Git.
Дальнейшее изучение:
https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branch-and-Merging