Управление веткой релизов в Git - PullRequest
5 голосов
/ 29 июня 2010

Итак, я впервые использую git, и есть сценарий, который я не совсем знаю, как решить.

У меня есть простое веб-приложение (только html, css иjs), и я хочу выпускать регулярные выпуски, которые можно отслеживать по номеру версии.Это легко сделать с git tag.Но суть в том, что для моих выпусков я хочу сделать некоторые дополнительные вещи, такие как минимизация скриптов js и обновление html-страниц, чтобы они указывали на них.Кроме того, мне нужен .gitattribute в выпуске, который игнорирует неминифицированные js-скрипты, так что git archive производит наименьший возможный вывод.

Я создал ветку releases.Эта ветвь включает в себя вышеупомянутые .gitattributes и измененные HTML-страницы.Каждый раз, когда я хочу новую версию, я переключаюсь на эту ветку, объединяю изменения с master, затем заканчиваю выпуск и отмечаю его номером версии.Кажется, он работает так, как я хочу, но я не уверен, как это должно быть сделано.

Мой вопрос к более опытным пользователям git: как обычно обрабатывается этот случай?

1 Ответ

4 голосов
/ 29 июня 2010

Хорошее решение для веток, но для управления релизами вы также можете просто сохранить «релиз» во внешнем репозитории (например, в Maven или другом репозитории Git, объявленном как подмодуль)

В управлении релизами есть:

  • вам не нужна подробная история для каждого файла (так как эти файлы build из исходных файлов)
  • вам нужно, чтобы эти "релизные" файлы были "упакованы", как минимизированные js.

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

...