SourceTree 删除远程不存在的TAG

在管理项目中,使用 Git 管理代码,发现 TAG 的删除比较头痛,经常出现有人创建了 TAG,过一段时间删除,可自己本地的 TAG 一直存在,如果 push 这个 TAG 到远程,那么此 TAG 将永远不会被删除。 强迫症的人怎么可以忍受。
Let us go.

创建一个批处理文件

将下文的代码复制,在桌面创建一个文件,取名删除远程不存在的 tag.sh

1
2
3
4
5
6
#! /bin/bash

cd $REPO/.git
git tag -l | xargs git tag -d
git fetch origin --prune
git fetch origin --tags

记得后缀是.sh

SourceTree 创建自定义事件

  • 打开 sourceTree 的偏好设置

  • 点击“添加”

    1. 输入标题
    2. 在“运行的脚本”,选择刚刚创建的脚本删除远程不存在的 tag.sh
    3. 确定

  • 执行操作

    添加完成后,打开需要更新 TAG 的 Git 项目,然后选择自定义操作

    坐等一会,远程不存在的 TAG 就 Gone 了。 _


如果执行自定义操作出现launch path not accessible错误提示,表示 shell 脚本文件没有权限。

只需要给文件授权即可:

1
chmod 0755 删除远程不存在的tag.sh

注:获取 TAG 的方法,点击“抓取”,然后选中“抓取并在本地存储所有标签”

坚持原创技术分享,您的支持将鼓励我继续创作!