Предположим, я выпустил версию своего программного обеспечения около года назад и пометил ее на 2.3 в Git.Как создать патч для старого тега в исходном элементе управления?
Поэтому я продолжаю добавлять функции и исправлять ошибки, и, прежде чем вы это узнаете, программное обеспечение теперь находится в версии 3.0. Но теперь у меня есть ошибка в версии 2.3 программного обеспечения, и человек, который нуждается в ней, исправлен, не готов к обновлению до версии 3.0.
Насколько Git обеспокоен тем, что было бы лучшим способом управления применением патча до версии 2.3 и созданием версии 2.3.1 программного обеспечения без изменения истории Git repo.
Например, я не могу проверить версию 2.3, применить патч, а затем пометить его на 2.3.1 и нажать на него, так как это создаст новую голову.
Как разработчики обычно управляют поддержкой более старых версий своего программного обеспечения?
Редактировать
Хорошо, так что я последовал @AnoE советовать и теперь мой рабочий процесс выглядит следующим образом для исправления предыдущих версий. Совет приветствуется.
git checkout v2.3.0
// Make code changes
git add -A
git commit -m "Fixed a bug in old app"
// Do something to verify the changes work on a different environment
git checkout -b v2_3_1
git tag -a v2.3.1 -m "Fixed small bug."
git push origin v2_3_1
git push --tags
Причина мне пришлось создать ветку, потому что метка не будет отображаться на печи, наш хостинг репо решения. Я не знаю, будут ли другие поставщики, такие как Bitbucket или Github, показывать тег без связанной ветки или если это просто побочный эффект того, как Git хранит вещи. Тег появился локально, когда я запустил git tag -l
, но он не был виден через веб-интерфейс. После того как я нажал на ветку и тег, я просто удалил ветку, и она появилась правильно из веб-интерфейса.
git push --delete v2_3_1
Если у кого-нибудь есть объяснение, почему произошло бы подобное, это было бы оценено.