Ветви - это обычно параллельные потоки развития, независимые друг от друга.Похоже на временную шкалу. Здесь - изображение программного проекта с несколькими ветвями.
У вас может быть ветвь, которая содержит всю вашу стабильную работу, например, и другую, которая содержит экспериментальную работу.Между ними может быть другая промежуточная ветвь, которая используется для квалификации изменений из экспериментальной ветви, прежде чем переместить ее в стабильную.Это все стратегии ветвления .Разные команды могут иметь разные ветви и т. Д.
В зависимости от вашей системы управления версиями реализация и использование ветвей могут сильно различаться.В централизованных системах контроля версий (например, SVN) ветвь по сути является копией всего исходного кода во время ветвления (аналогично cp -R
в файловой системе).После этого разработка в этой отрасли будет продолжаться независимо от основной.Таким образом, у вас будет что-то вроде этого
--o---0---o---o---o---- (parent branch)
\
\---o---o---0--- (new branch)
o
означает коммит, а 0
является точкой ветвления.Ветви, которые вы создаете с помощью этой системы, являются глобальными (их могут видеть все в вашем проекте), и они довольно тяжелые.Можно merge
добавить новую ветку обратно в родительскую ветку, когда вы захотите.Это может повлечь за собой merge conflicts
.
С децентрализованными VC (я использую Git в качестве примера), ответвления гораздо более легкие.Они просто указывают на позицию в DAG, которая представляет историю вашего проекта.Вы можете подтолкнуть их вперед, создав новый коммит.Кроме того, ветви будут локальными (то есть только вы можете их видеть, если вы не решите их опубликовать).
Однако, ветвление и слияние имеют некоторый концептуальный контент, который вы не можете понять, не читая документы.Я бы посоветовал вам взглянуть на документацию используемой VCS и вернуться к переполнению стека с конкретными вопросами, если у вас есть такие вопросы.