一、事情起因
最近在做CICD,发现远程构建机器的Git仓库中还存在一些早已删除的tag,导致无法生成重名的tag了,研究了一下发现git fetch操作是没办法同步已删除的tag的,所以在此记录下解决方案。
二、解决方案
想要强制同步本地与远端的tag,需要用到两个命令行:
- 1个是先删除本地所有tag
- 然后是拉取所有远端tag
git tag -l | xargs git tag -d #删除所有本地tag
git fetch origin --prune #从远端拉取所有信息
至此,本地的所有tag就与远端一致了,包括远端不存在而本地残留的tag也消失不见了。