Руководство по веткам (Git и Qt)

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

Содержание

Руководство по созданию, обслуживанию и закрытию веток

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

Создание новой функциональной ветки

Когда создаётся новая ветка то, чтобы начать вы должны выбрать одну ветку за основу. Хорошей основой являются ветки:

  1. Стабильные
  2. Долгоживущие
  3. Сопровождения

Кроме того, вы можете захотеть сделать где-нибудь резервную копию вашей новой ветки, выберите расположение:

  1. Личный клон вашего проекта.
  2. Хранилище команды.

Обслуживание и обновление ветки

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

Закрытие ветки

Когда вы закончили работать со своей функциональностью, решите, где объеденять её назад. Ваши варианты включают:

  1. Наиболее непосредственная цель - ваша базовая ветка. Слийте с ней и удалите вашу функциональную ветку.
  2. Вы также можете выбрать для слияния вашу функциональную ветку в другую функциональную ветку проекта, и, затем, закрыть вашу.
  3. Если вы хотите получить только те изменения, которые вы сделали и слить их в другую ветку, без учёта изменений вашей базовой ветки, тогда вы можете использовать git rebase. Это может быть сложная операция и лучше работает на относительно мелких изменениях.

Experimental work

A common situation is that you have two separate feature branches and you would like to try out how both of them behave together. Simply create a third, short-lived branch based on the one feature branch and with the second one merged into it. If in the process of testing the combination of both branches you discover that additional changes are needed, then you can commit them first into your experimental branch. Afterwards use git-cherry-pick to pick them into one of the two originating branches and delete your experimental branch again.