5 Использование веток | nsws.ru
  • warning: preg_replace(): No ending delimiter '/' found in /srv/www/nsws.ru/includes/unicode.inc on line 345.
  • warning: preg_replace(): No ending delimiter '/' found in /srv/www/nsws.ru/includes/unicode.inc on line 345.
  • warning: preg_replace(): No ending delimiter '/' found in /srv/www/nsws.ru/includes/unicode.inc on line 345.
  • warning: preg_replace(): No ending delimiter '/' found in /srv/www/nsws.ru/includes/unicode.inc on line 345.
  • warning: preg_replace(): No ending delimiter '/' found in /srv/www/nsws.ru/includes/unicode.inc on line 345.
  • warning: preg_replace(): No ending delimiter '/' found in /srv/www/nsws.ru/includes/unicode.inc on line 345.

Использование веток

Рано или поздно в любом проекте возникает ситуация, когда требуется заморозить изменения, но продолжать работать, а на замороженные изменения накладывать только баг-фиксы. Для этой цели служат ветви (branch)

В гите можно создать ветку от любого места. Для создания ветки от основного дерева надо выполнить следующую команду:
 
В результате этой команды вы увидите примерно такое сообщение:
 
Это значит, что в локальном репозитории у вас создалась новая ветка.

Если в этой команде заменить origin/master на origin/remote_branch_name то вы создадите ветку от другой ветки.

Чтобы ваша ветка была видна всем, ее требуется пропихнуть в удаленный репозиторий. Делается это так:
 
Разумеется, надо также уметь и получать ветки в свое распоряжение:
 
В результате вы получите искомую ветку после следующего сообщения:
 
При работе с несколькими ветками одновременно в конце концов возникает необходимость применить все изменения с одной ветки на базовую (ну конечно это возникает не всегда, но часто), причем, как правило, базовая ветка с тех пор успела поменять свое содержимое. В таких случаях для слияния веток рекомендуется использовать команду git rebase.

Данная команда сохраняет все ваши изменения на ветке, которые вы сделали с момента ответвления, и накладывает на эту ветку все изменения которые были сделаны на master ветке, после чего применяет все ваши изменения. Таким образом вы получаете ветку, которая ответвляется от текущей master-ветки и теперь вы можете успешно сделать git merge.

Пример использования: