Мне очень жаль ужасное название вопроса, но я попытаюсь объяснить себя более многословно:
Я использую Git (но я полагаю, что конкретное программное обеспечение не имеет большого значения в этом случае) для моего программного проекта. Как и многие проекты, я планирую выпустить разные релизы. Когда есть релиз, я бы, вероятно, назначил коммит тегу - например, «1.0». Время идет, и код взломан, и в конце концов есть релиз, с другим тегом - на этот раз «2.0».
Однажды я заметил серьезную ошибку, которая присутствует в обеих версиях 1.0 и 2.0, и ее необходимо исправить. Чтобы сделать вещи сложными (и, вероятно, более реалистичными), я не могу просто исправить это в текущем master / trunk и предположить, что все будут использовать это, потому что есть некоторые обратные несовместимости в 2.0 с 1.0, и люди ленивы и дона не хочу обновляться.
Итак, что будет хорошей схемой для поддержки такого поведения: возможность вносить изменения в более старые версии. Git, похоже, приравнивает теги к релизам на некотором уровне из-за вывода команды git describe
("[latest tag]-[commits since the tag]-[current commit hash]
"). Я, вероятно, не могу избежать использования тегов в целом.
Я чувствую, что комбинация тегов и ветвей была бы хорошей идеей, но по какой-то причине я не могу обернуться вокруг подробностей с этим.