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