github中的branch和tag到底是个什么关系
最近在学习Git, 对git 里面tag的概念不是很清晰,所以由此疑问
我的操作都是用的git命令
我在master打了两个tag v-0.1和v-0.2, push 到remote
先克隆代码仓库到本地:git clone https://github.com/xxxxxxxx
git checkout master 其实默认的也是master
git tag -a v-0.1
git tag -a v-0.2
git push origin :refs/tags/v-0.1
git push origin :refs/tags/v-0.2
然后创建 branch A , 并本地切换到branch A
git checkout -b A
把本地分支推A送到远程
git push origin A
在当前分支A上创建两个tag v-0.3和v-0.4 并push到远程
git tag -a v-0.3
git tag -a v-0.4
git push origin :refs/tags/v-0.3
git push origin :refs/tags/v-0.4
最后发现,我的master 分支和A分支上都有4个tag v-0.1,v-0.2,v-0.3,v-0.4,可是我希望的是在master 分支上只有 v-0.1,v-0.2;A 分支上只有v-0.3,v-0.4;因为我就是这样建的。所有我想删除掉分支A上的 v-0.1和v-0.2,只保留v-0.3和v-0.4。可是天啊,我删完发现,master分支上的v-0.1和v-0.2也不见了。
换言之,
1.就是打tag时候所在的branch 无关, tag是全局范围内的一个快照, 一个具体时间点缩影, 以后任意时刻我都可以使用这个tag 获取当时各个branch的具体内容, 这样理解对么?
2 如果可以, 稍微比较git 里面的tag 和svn 里面各自tag概念 的异同?
谢谢