问题场景:
同事A在本地建立tagA并push同步到了远程->同事B在本地拉取了远程tagA(git fetch)->同事A工做须要将远程标签tagA删除->同事B用git fetch同步远端信息,git tag后发现本地仍然记录有tagAgit
分析:对于远程repository中已经删除了的tag,即便使用git fetch --prune,甚至"git fetch --tags"确保下载全部tags,也不会让其在本地也将其删除的。并且,彷佛git目前也没有提供一个直接的命令和参数选项能够删除本地的在远程已经不存在的tag(我目前是没找到有关这类tag问题的git命令~~,有知道的同窗能够告知我下,互相进步)。
解决方法:fetch
git tag -l | xargs git tag -d #删除全部本地分支
git fetch origin --prune #从远程拉取全部信息spa
#查询远程tags的命令以下:
git ls-remote --tags originrem
tag经常使用git命令:
git tag #列出全部tag
git tag -l v1.* #列出符合条件的tag(筛选做用)
git tag [tag名] #建立轻量tag(无-m标注信息)
git tag -a [tag名] #建立含注解的tag同步
git push origin --tags #推送全部本地tag到远程
git push origin [本地tag名] #推送指定本地tag到远程it
git tag -d [本地tag名] #删除本地指定tag
git push origin :refs/tags/[远程tag名] #删除远程指定tag下载
git fetch origin [远程tag名] #拉取远程指定tag
git show [tag名] #显示指定tag详细信息
方法