版本控制

指的是代码的版本,用的是svn或者git之类的代码仓库来搞的,相当于代码仓库可以记录下来每次你的代码提交和代码变更,也就记录下来了你的代码的各种版本的变化,大概就是这个意思

版本管理

1.0-SNAPSHOT就对应着git中的一个1.0-SNAPSHOT代码分支

用一张图给你解释清楚

05_maven和git之间的关系.png

SNAPSHOT版本:快照版本,此时代码还在不断开发和修改,或者进行测试中,还没有完成所有的测试
beta版本:代表的是公开测试版,就是对外提供试用,也有的项目用的时alpha来替代beta
alpha版本:实验版本,也就是内部测试版本,就是给自己公司内部用用的
rc版本:预发布版本,基本就比较稳定了,但是还不是最终发布版,可以尝试下载使用了

如果要将snapshot发布发布为release版本,至少需要满足几个条件:
(1)所有的单元测试全部通过
(2)pom.xml中没有任何snapshot版本的依赖
(3)pom.xml中没有任何snapshot版本的插件
(4)这个版本的代码已经全部提交到对应的git分支上了,同时一定从分支merge到了master主干分支上去,并且给master分支打上了一个tag,这个tag就是对主干分支这一时刻代码的一个标签,这样任何时候都可以回退到主干分支的任何一个tag对应的版本的代码上去
此时一个release版本就完成了,然后就继续升级到下一个版本的snapshot版本上去,继续进行开发和测试