zoukankan      html  css  js  c++  java
  • git 如何同步本地tag与远程tag

    问题场景:
    同事A在本地创建tagA并push同步到了远程->同事B在本地拉取了远程tagA(git fetch)->同事A工作需要将远程标签tagA删除->同事B用git fetch同步远端信息,git tag后发现本地仍然记录有tagA

    分析:对于远程repository中已经删除了的tag,即使使用git fetch --prune,甚至"git fetch --tags"确保下载所有tags,也不会让其在本地也将其删除的。而且,似乎git目前也没有提供一个直接的命令和参数选项可以删除本地的在远程已经不存在的tag(我目前是没找到有关这类tag问题的git命令~~,有知道的同学可以告知我下,互相进步)。
    解决方法:

    git tag -l | xargs git tag -d #删除所有本地分支
    git fetch origin --prune #从远程拉取所有信息

    #查询远程tags的命令如下:
    git ls-remote --tags origin

    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到远程

    git tag -d [本地tag名] #删除本地指定tag
    git push origin :refs/tags/[远程tag名] #删除远程指定tag

    git fetch origin [远程tag名] #拉取远程指定tag
    git show [tag名] #显示指定tag详细信息

  • 相关阅读:
    Git 分支使用
    ansible 2.7 API
    zabbix api
    (四)ansible 通过堡垒机访问内网服务器
    C#实体对象出现中文处理乱码的问题
    mysql数据库数据(字段数过大)太多导入不了的解决方法
    MathWorks.MATLAB.NET.Arrays.MWArray”的类型初始值设定项引发异常 解决方法
    hibernate 主键生成方式
    HTN规划 jshop2
    自动驾驶
  • 原文地址:https://www.cnblogs.com/xiaouisme/p/10857149.html
Copyright © 2011-2022 走看看