git ветвление нескольких проектов

В моем случае суперпроект достаточно большой, поэтому он состоит из нескольких артефактов. Скажем, проект A, B, C, D, E. Это разные проекты git. Теперь нам нужно работать над двумя разными релизами, а затем возникает проблема, как мы хотим сделать ветвление. Сначала я пришел из мира подрывной деятельности, если это SVN, я, вероятно, подумал бы о создании суперпроекта и содержал бы все подпроекты A, B, C, D, E, а затем я просто развил бы суперпроект.

Но с точки зрения ветвления концептуально git несколько отличается от SVN. Просто интересно, в мире git, как обычно лучше всего разветвлять несколько проектов git для разных выпусков? Я знаю, что о подмодулях много говорили, имеет ли смысл разветвлять проекты по отдельности?

Другой вопрос, если ветвление сделано, то как нам версионировать артефакты в разных ветках? если у вас есть две ветки, это будет означать, что у вас будут разные версии для всех подпроектов в двух разных ветках, тогда вы начнете чувствовать запах неудачи.


person Shengjie    schedule 16.07.2012    source источник


Ответы (2)


Поскольку ветки очень легкие, вам не следует беспокоиться о их создании для всех подпроектов, которые вы контролируете. Большая часть этой работы завершена в проекте под названием git slave. Работа с git submodule foreach везде может стать утомительной и вызвать проблемы, если вы забудете добавить префикс к своим командам.

person Adam Dymitruk    schedule 16.07.2012

Подмодули или подрепозитории — это способ разделить большой проект. Каждый подмодуль имеет свою ответственность, версию и ответвления.

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

Вы можете разветвить все с помощью следующих команд (запустите в корне вашего основного репо)

git checkout -b hacking_away
git submodule foreach git checkout -b hacking_away
person Split Your Infinity    schedule 16.07.2012