Ведение в гит параллельно двух версий проекта

Рейтинг: 2Ответов: 2Опубликовано: 29.07.2023

Необходимо параллельно развивать и сопровождать две версии одного проекта. Часть изменений будет общая для обоих версий, а часть изменений будет специфична для одной из версий.

Как в таком случае организовать ведение проекта в гит?

Ответы

▲ 0

Создайте отдельную ветку для второй версии, допустим ваша основная ветка это "main", сделаем ещё одну ветку "experimental":

git switch -c experimental

в ней вы можете cделать специфичные изменения. После этого вернутся в основную ветку

git switch main

и сделать общие для обоих веток изменения. Теперь нужно эти изменения добавить в нашу "experimental" ветку:

git switch experimental
git merge main

Если помимо "main" нужно больше изолированных версий, просто создайте ещё дополнительные ветки.

▲ 0

Две версии проекта, очевидно, ведутся в двух разных долгоживущих ветках.

Если версии отличаются довольно сильно, то общий изменения проще делать в одной ветке, и после этого переносить во вторую через rebase/cerry-pick, так как merge перенесёт не только последние изменения, в все, сделанные с последнего merge, среди которых когда-нибудь окажутся и специфичные для версии.

А вот если версии развиваются не параллельно, а только одна из двух, например, легаси, куда вносятся только исправления багов, и основная, где идёт развитие, то багфиксы можно делать в легаси, и спокойно мёржить в основную.