gpt4 book ai didi

bash - 获取第二个最近的 git 标签

转载 作者:太空狗 更新时间:2023-10-29 14:03:34 26 4
gpt4 key购买 nike

我需要第二个最近的 git 标签的 sha。运行时

git show-ref --tags

我明白了

ab295f707bc42e8975fd4d87142ca436c0fac94f refs/tags/initial-commit-tag
1c816fc0895faeecd48b9b31e09ba825698f92a6 refs/tags/production-2018-03-06-001

它显示了我目前拥有的两个标签。我怎样才能让它只输出 ab295f707bc42e8975fd4d87142ca436c0fac94f

我试过 git rev-list --tags --max-count=1 --skip=1 但显然也包括非标签,因为当我运行时

git rev-list --tags --max-count=30 --skip=1

我明白了

d3d536c6745c823994b3fec8ce3b26caf2b4c6f5
08278f196cad30b5acbdd9d5f0baa58baab630bc
480513c6d94c6df52f49b91c5f90c39af4fc8f34
183a91321a85083fdf29b77bcbce5b9ca3932f12
e04e120be2f200bae88de37d1be2cebc8b07f74f
168b696f915adaea95c4e0d2a8cea68ea25538b2
0b9aa10a4f005f349e9553ac75552abc07723b95
befa7507836af93b1c765d957c65cbcf6ebea890
6850539077d82847907410d587ca3da047043915
a0a6d7b98c64ad318ff0d2c4252ac1ad94959bb2
3e91ed05db57b5dec23df0a465b9c8bc0a8dfe26
2341cf5a58974a9f57b0aa92a837e7857631f5cb
385a88d22c77cf26f21a906a2be65695528960b9
c7548f04d7b928eb7bf2f485aeb6fa78ef6846e9
a5abb21b1acb59617e3d69173d883c3e5f7db0f2
b0595fae8c8f697aa02dbd49d149da4f4efabad6
2c08455a1b86e1ba6de86844a83346262ab89e00

所以这个列表中不仅有标签。我如何在此处过滤标签/使第一个命令可行以仅显示第二个最近的命令?

注意:我在 Mac/Linux 上,所以 bash 管道也可以工作。

编辑:

最后 --no-walk 选项对我来说是词性的,所以

git rev-list --tags --max-count=1 --skip=1 --no-walk

不过,下面接受的答案要强大得多。

最佳答案

您可以稍微重构您的 git 命令并将其通过管道传输到 sed 以提取您需要的数据:

git for-each-ref --sort=-taggerdate --format '%(objectname)' refs/tags | sed -n 2p  

解释:

  • git for-each-ref : documentation link .显示有关引用的信息。
    • --sort=-taggerdate : 按标签日期反向排序输出
    • --format '%(objectname)' :我们只输出散列
    • refs/tags:我们只列出 refs/tags 中的标签
  • sed -n 2p: 只输出第二行

请注意,如果您的标签上没有 taggerdate,您可以使用其他排序选项,例如 creatordate(可用字段的完整列表 here) .

关于bash - 获取第二个最近的 git 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49132798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com