假设我大约一年前发布了软件的一个版本,并在 Git 中将其标记为 2.3。
所以我不断添加功能和修复错误,不知不觉中,软件现在已经升级到版本 3.0。但现在我发现软件版本 2.3 有一个错误,需要修复它的人还没有准备好升级到版本 3.0。
就Git而言,管理如何应用补丁到2.3并创建软件的版本2.3.1,而不改变Git存储库的历史记录是什么?
例如,我无法检出版本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
我不得不创建一个分支的原因是,标签在我们的代码库托管解决方案Kiln上无法显示。我不知道其他提供商如Bitbucket或Github是否会显示没有关联分支的标签,或者这是否只是Git存储方式的副作用。当我运行git tag -l
时,标签在本地显示,但在Web界面中不可见。在我推送了分支和标签之后,我只是删除了分支,然后它就可以从Web界面正确显示了。
git push --delete v2_3_1
如果有人能解释为什么会发生这样的事情,将不胜感激。