git-branch - git:列出悬挂标签

标签 git-branch git-log git-tag git

上下文:

  • 假设您有一些相当棘手的 CI/CD 工作流,它依赖于 git 标签
  • 构建功能分支并生成一些短期标记以表示产生可部署工件的提交
  • 当功能分支被压缩 merge 时,通常它会被删除,但不出所料,标签仍然存在
  • 经过几个月的开发,标签列表可以预见地变得多毛

因此,问题:

我将如何使用 git 命令行和可选的基本 bash 工具

  1. 列出给定标签可达的所有分支(与之对应的是 git tag -l --merged ${BRANCH_COMMITTISH},但我不需要给定分支的标签,但需要分支给定标签)
  2. 列出上面第 1 点的所有输出为空的标签(显然这可以用 for 循环(给定 1 的任何终止实现),但也许有一些巧妙的神奇 git 单行代码)?

最佳答案

git log --simplify-by-decoration --tags --not --branches --remotes --pretty=%d

--simplify-by-decoration 说只显示揭示祖先所需的最低限度(通常你将它与 --graph 一起使用)。 --tags --not --branches --remotes 说的是,好吧,它说的是什么:列出不在分支或远程历史中的标签历史,即无法从任何分支或远程跟踪访问的标签分支。 --pretty=%d 表示只显示引用。

关于git-branch - git:列出悬挂标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614904/

相关文章:

git log --remotes --decorate 显示已删除的分支?

git - 如何使用 git 查看所有文件自初始创建以来的更改?

git - 如何重现 git log --oneline --decorate 的格式?

git pull --rebase 原始标记名?

存储库子文件夹的 Git 标记

git - 如何在不调用 Github API 的情况下获取 GitBash 中特定分支的现有 Pull Request ID 和 Url?

git checkout : detailed meaning of "theirs" and "ours"

git local master branch 停止跟踪 remotes/origin/master,无法推送

git - 在 Git 中创建新分支时可以添加消息/注释/评论吗?

continuous-integration - 推送标签时未触发 GitHub 操作