Что такое ветки в Git? - PullRequest
4 голосов
/ 26 декабря 2010

У меня есть несколько репозиториев Git, у всех из которых есть одна ветвь с именем 'master'.Но что такое ветки и что вы можете с ними сделать?

Спасибо.

Ответы [ 5 ]

2 голосов
/ 28 декабря 2010

Вот хорошая статья, на которую я люблю ссылаться все время: Успешная модель ветвления Git

Статья представляет собой практический и успешный пример команды, которая эффективно сотрудничает с Git.

2 голосов
/ 26 декабря 2010

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

У вас может быть ветвь, которая содержит всю вашу стабильную работу, например, и другую, которая содержит экспериментальную работу.Между ними может быть другая промежуточная ветвь, которая используется для квалификации изменений из экспериментальной ветви, прежде чем переместить ее в стабильную.Это все стратегии ветвления .Разные команды могут иметь разные ветви и т. Д.

В зависимости от вашей системы управления версиями реализация и использование ветвей могут сильно различаться.В централизованных системах контроля версий (например, SVN) ветвь по сути является копией всего исходного кода во время ветвления (аналогично cp -R в файловой системе).После этого разработка в этой отрасли будет продолжаться независимо от основной.Таким образом, у вас будет что-то вроде этого

--o---0---o---o---o---- (parent branch)
       \
        \---o---o---0--- (new branch)

o означает коммит, а 0 является точкой ветвления.Ветви, которые вы создаете с помощью этой системы, являются глобальными (их могут видеть все в вашем проекте), и они довольно тяжелые.Можно merge добавить новую ветку обратно в родительскую ветку, когда вы захотите.Это может повлечь за собой merge conflicts.

С децентрализованными VC (я использую Git в качестве примера), ответвления гораздо более легкие.Они просто указывают на позицию в DAG, которая представляет историю вашего проекта.Вы можете подтолкнуть их вперед, создав новый коммит.Кроме того, ветви будут локальными (то есть только вы можете их видеть, если вы не решите их опубликовать).

Однако, ветвление и слияние имеют некоторый концептуальный контент, который вы не можете понять, не читая документы.Я бы посоветовал вам взглянуть на документацию используемой VCS и вернуться к переполнению стека с конкретными вопросами, если у вас есть такие вопросы.

2 голосов
/ 26 декабря 2010

Ветви используются, когда вы хотите разработать конкретную функцию в среде для себя.Это значит, что вы не смешиваете непроверенный код с транком, обычно стабильной версией.Вы разветвляетесь до тех пор, пока не разработаете и не протестируете эту функцию, а затем снова объедините ветку с транком.

1 голос
/ 26 декабря 2010

Поскольку вы новичок в GIT, я с энтузиазмом рекомендую прочитать Главу 3 в этой книге:

http://progit.org/book/

@ Нуфал и @Jakob уже дали хороший ответ, я полагаю.Однако, когда дело доходит до практической стороны использования GIT, вы всегда будете делать ошибки из-за разного синтаксиса ветвей (master, origin master, origin / master и т. Д.).

Кроме того, я рекомендую прочитатьпонятия о GIT, а не о том, как его использовать, поэтому проверьте эту ссылку, и вам может быть интересно прочитать о ветвлении:

http://www.eecs.harvard.edu/~cduan/technical/git/

0 голосов
/ 27 декабря 2010

в дополнение к предоставленным ответам, есть git веб-трансляция о ветвлении и слиянии по http://gitcasts.com/ или перейдите непосредственно к http://blip.tv/file/4094707

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...