Ветвление

Ветка — это именованная ссылка на коммит. Например, ветка master или ветка origin/master.

Ветки нужны для того, чтобы в рамках одного репозитория можно было параллельно выполнять несколько задач. Каждая из веток содержит весь проект, но состояние этого проекта в каждой из веток свое. Например, в ветке master содержится проект в «рабочем» состоянии, готовый к использованию. В ветке release/1.5.4 содержится очередная новая версия проекта, которая готовится к выпуску. А в ветке develop ведется разработка будущей функциональности, которая появится в версиях 1.5.5 и старше.

Git позволяет легко создавать новые ветки на основе существующих, а затем объединять изменения разных веток, вливая их одну в другую.

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

Локальные ветки (например, master на картинке) нужны для того, чтобы не запутаться в тех коммитах, которые вы делаете в локальном репозитории. Каждый раз, когда вы фиксируете изменения, в локальный репозиторий добавляется коммит. Локальная ветка всегда указывает на «текущий», последний коммит. Когда вы создаете следующий коммит, указатель ветки автоматически перемещается на него.

Начиная с любого коммита, содержащегося в вашей локальной ветке, вы можете создать новую ветку и разрабатывать в ней, например, какую-то новую функциональность. Параллельно и независимо от основной ветки. Когда ваша работа будет закончена, вы можете влить все свои изменения из этой ветки в основную.

Ветки удаленного отслеживания нужны тогда, когда вы работаете с удаленным репозиторием. Такие ветки обычно имеют составное название (например, origin/master на картинке).

Ваша ветка удаленного отслеживания всегда соответствует некоторой локальной ветке удаленного репозитория. На картинке ваша ветка удаленного отслеживания origin/master соответствует локальной ветке master, которая есть в удаленном репозитории origin. За тем, чтобы это соответствие было актуальным, Git следит каждый раз, когда вы получаете изменения из удаленного репозитория или помещаете их туда.

Благодаря этому вы можете использовать данные ветки origin/master для того, чтобы объединять их со своей локальной веткой или для того, чтобы отправлять свою локальную ветку в удаленный репозиторий.

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

Создать новую ветку

Основным способом создания новых веток является использование дополнительных возможностей, предоставляемых при этом 1C:EDT: создание новой информационной базы, для работы с этой веткой и использование снимков при переключении веток. Как это сделать, читайте здесь.

Кроме этого 1C:EDT позволяет создать новую ветку стандартными средствами Git, не учитывая специфику разработки в «1С:Предприятии». Это можно сделать несколькими способами:

Назначение полей:

Переключить на другую ветку (checkout)

Переключить локальный репозиторий на другую ветку можно несколькими способами:

Если для переключения вы выберите не существующую у вас локальную ветку, а ветку удаленного отслеживания, то тогда 1C:EDT спросит, как именно вы хотите ее извлечь:

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

Отсоединенный HEAD

«Отсоединенный HEAD» это такое состояние локального репозитория, при котором он содержит проект, соответствующий некоторому коммиту, но нет локальной ветки, извлеченной в рабочий каталог.

Например, у вас есть ветка master, извлеченная в рабочий каталог.

Если теперь вы извлечете коммит «второй коммит», то локальный репозиторий у вас окажется в состоянии «отсоединенный HEAD», ему не будет соответствовать ни одна ветка.

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

Однако в состоянии «отсоединенный HEAD» не нужно изменять проект, так как вы не сможете зафиксировать свои изменения. Они не будут принадлежать ни одной ветке.

Если вы хотите что-то изменять, сначала создайте новую ветку, находясь в таком состоянии, или сначала извлеките любую из существующих веток.

Переименовать ветку

Переименовать ветку можно несколькими способами:

Удалить ветку

Удалить ветку можно несколькими способами:

  • В панели История нажмите Удалить ветку... в контекстном меню коммита;
  • В панели Репозитории Git нажмите Удалить ветку... в контекстном меню ветки.