Подтвердить что ты не робот

Как правильно использовать git и ветки

Я как бы новичок в управлении версиями с GIT. Я прочитал этот Guide и следую основному подходу, который показан на диаграмме ЗДЕСЬ. Тем не менее, у меня есть некоторые сомнения в том, как использовать ветки git, чтобы отделить разработку новых функций от существующего кода.

Вот пример. Предположим, что в начале мой репозиторий содержит следующие две основные ветки:

  • Главный ветвь (содержащая версию выпуска)
  • Развернуть ветвь (содержит новые исправления или функции для их разделения от существующих функций проекта)

Когда мне нужно разрабатывать новые функции или модули, я создаю ветки из "Разработки" и запускаю там новые проекты кода. Например, я добавляю три новые ветки для добавления функций, связанных с Sun, Star и SuperNova. Теперь мой репозиторий содержит пять ветвей:

  • Главный ветвь: Release 1.0.0
  • Разработка ветки: Модификация после выпуска 1.0.0
  • ветвь NewModule_Sun: добавьте Sun в проект (создайте из ветки разработки)
  • ветвь NewModule_Star: добавьте Star в проект (создайте из ветки разработки)
  • ветвь NewModule_SuperNova: добавьте SuperNova в Project (создайте из ветки разработки)

Для версии 1.0.1 я хочу включить модули Sun и Star, но не SuperNova. Таким образом, я объединять их с Develop, а затем объединить Develop с Release:

  • Слияние NewModule_Sun в разработку
  • Слияние NewModule_Star в разработку
  • Слияние в Master (выпуск 1.0.1)

Отрасль разработки должна храниться постоянно, но ветки Sun и Star больше не нужны. Они удаляются:

  • Удалить ветку NewModule_Sun
  • Удалить ветку NewModule_Star

После этих изменений мой репозиторий содержит следующие три ветки:

  • Мастер-отдел: выпуск 1.0.1
  • Разработка ветки: изменение после выпуска 1.0.1
  • ветвь NewModule_SuperNova: модификация после выпуска 1.0.0 (созданная с помощью разработчика, когда она не была объединена со ветвями Star/Sun)

==

Во-первых, правильно ли использую ветки git?

Во-вторых, я просмотрел историю окончательной ветки разработки, и кажется, что я потерял некоторую информацию о NewModules. Это нормально? И, возможно ли передать всю информацию истории в ветку разработки?

Спасибо!

4b9b3361

Ответ 1

Использую ли я git?

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

После удаления ветки, просматривая историю, мне кажется, что я потеряли все сведения о самой ветке... это нормально?

Да, это нормально.

можно удалить ветку, но оставив информацию истории ненарушенной?

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

Ответ 2

Я предлагаю вам прочитать http://nvie.com/posts/a-successful-git-branching-model/, который определяет хороший шаблон для ветвления git.

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