Ветка репозитория

Ветка (Branch) — это параллельная версия репозитория. Она включена в этот репозиторий, но не влияет на главную версию, тем самым позволяя свободно работать в параллельной. Когда вы внесли нужные изменения, то вы можете объединить их с главной версией.” - взято отсюда: https://htmlacademy.ru/blog/useful/git/git-and-github-glossary.
Вопрос: она включена в репозиторий в качестве чего? В качестве одной из версий проекта или это в качестве, как бы это назвать, подрепозитория?
Или правильнее понять, что в одном репозитории существуют две версии репозитория?

О ветвлении можно подробно почитать здесь.

В репозитории есть несколько версий проекта, и это ветки. Не подрепозитории.

  1. Вот здесь: image Сказано следующее:
    “В этом случае Git выполняет простое трехстороннее слияние используя последние коммиты объединяемых веток и общего для них родительского коммита.” (Рисунок 24. Использование трех снимков при слиянии). Вопрос: зачем в слияние включается родительский коммит, я раньше думал, что слияние - это создание нового коммита, который объединяет всего 2 коммита, которые являются последними в двух ветках. Зачем там еще и родитель? Не понимаю.
  2. Если две ветки являются разветвлением одной ветки, можно ли сказать, что коммиты их общей части (части до разветвления) принадлежат обеим веткам? То есть можно ли сказать, что вот эти коммиты до разветвления - это часть первой ветки и вместе с тем часть второй ветки?
  3. При перебазировании ветки 2 в ветку 1 происходит просто “сцепление” двух веток (начало второй ветки прикрепляется к концу первой) или происходит что-то более сложное?
  1. При простом вливании ветки слияние будет fast-forward, указатель ветки просто переносится вперёд. Но в цитате речь идёт уже о трёхстороннем слиянии, которое сложнее. Оно разбирается в приведённой главе. Суть в том, что указатель ветки master уже ушёл вперёд по сравнению с тем состоянием, в каком он был на момент создания ветки iss53, и нужно это учесть.
  2. Да.
  3. При перебазировании коммиты одной ветки применяются поверх другой, и в итоге там оказываются все изменения. Результат такой же, как при слиянии, но без итогового коммита. Как именно происходит процесс перебазирования детально описано здесь.
1 лайк