問題場景:
同事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詳細信息
方法