gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/push_all.sh (about)

     1  #!/bin/bash
     2  
     3  # 获取本地提交的最后一个版本
     4  commit_last_version=$(git log -1 --format="%H")
     5  # 获取远程仓库上的最后一个版本
     6  pushed_last_version=$(git ls-remote origin HEAD | cut -f 1)
     7  # 获取远程仓库上的标签列表,并根据版本号进行排序
     8  tag_list=$(git ls-remote --tags --sort='v:refname')
     9  # 获取远程仓库上的最后一个标签
    10  tag_last=$(echo "${tag_list}" | tail -n 1 | cut -f 2)
    11  # 获取远程仓库上的最后一个标签的版本号
    12  tag_last_version=$(echo "${tag_list}" | tail -n 1 | cut -f 1)
    13  
    14  echo "本地最新提交版本: $commit_last_version"
    15  echo "仓库最新推送版本: $pushed_last_version"
    16  echo "仓库最新标签版本: $tag_last_version ($tag_last)"
    17  
    18  echo "请选择要执行的操作:(1:推送代码到远程仓库, 2:创建新标签并推送到远程仓库, 其他:退出)"
    19  read -r op_mode
    20  
    21  if [ "$op_mode" = "1" ]; then
    22    echo "----- 查看所有远程仓库:"
    23    git remote -v
    24    echo "----- 推送到所有远程仓库:"
    25    git push origin --all
    26    echo "----- 推送结束"
    27  elif [ "$op_mode" = "2" ]; then
    28    echo "----- 创建新标签并推送到远程仓库"
    29    echo "请输入新标签的版本号:"
    30    read -r tag_version
    31    echo "请输入新标签的描述信息:"
    32    read -r tag_message
    33    git tag -a "$tag_version" -m "$tag_message"
    34    git push origin "$tag_version"
    35  else
    36    echo "----- 退出"
    37  fi