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

     1  #!/bin/bash
     2  
     3  ## 获取本地最后一个提交的版本
     4  #last_commit=$(git log -1 --pretty=format:"%H")
     5  #
     6  ## 获取远程仓库上的标签列表,并根据版本号进行排序
     7  #tag_list=$(git ls-remote --tags | awk '{print $2" "$1}' | sed 's#refs/tags/##' | sort -V)
     8  #
     9  ## 获取远程仓库上最后一个标签的版本号
    10  #last_tag=$(echo "${tag_list}" | tail -n1 | awk '{print $2}')
    11  #
    12  #echo $last_commit
    13  #echo $last_tag
    14  #
    15  ## 比较最后一个标签的版本与本地最后一个提交的版本是否一致
    16  #if [[ ${last_tag} == ${last_commit} ]]; then
    17  #  echo "The latest tag in the remote repository is the same as the latest commit in the local repository."
    18  #else
    19  #  echo "The latest tag in the remote repository is different from the latest commit in the local repository."
    20  #fi
    21  
    22  # 获取本地提交的最后一个版本
    23  commit=$(git log -1 --format="%H")
    24  # 获取远程仓库上的最后一个标签
    25  tag=$(git ls-remote --tags --sort='v:refname' | tail -n 1 | cut -f 1)
    26  echo "本地最新提交版本: $commit"
    27  echo "仓库最新标签版本: $tag"
    28  # 比较两个版本是否一致
    29  if [ "$tag" = "$commit" ]; then
    30    echo "Yes"
    31  else
    32    echo "No"
    33  fi