簡體   English   中英

在分支上獲取倒數第二個 git 標記,匹配給定的 glob

[英]Get penultimate git tag on branch, matching a given glob

我有一個 git 存儲庫,在主分支上提交,每個可能有多個標簽:

HASH: TAGS
hash7: [v6.0.0, foo1, foo2, foo3]
hash6: []
hash5: []
hash4: [v5.0.0, bar1, bar2, bar3]
hash3: [v4.0.0, baz1, baz2, baz3]
hash2: []
hash1: [v3.0.0, foobar1, foobar2, foobar3]

我有一個由創建版本標簽( v.*.*.* )觸發的 github 操作。 這個動作需要能夠找出之前的版本標簽。 因此,例如,如果操作在hash7 ( v6.0.0 ) 上運行,它應該返回v5.0.0 如果它在hash4 ( v5.0.0 ) 上運行,它應該返回v4.0.0等。

有許多與此相關的 stackoverflow 問題。 我嘗試了以下各種組合:

  • git describe --match 'v*' --tags
  • git rev-list --tags='v*' --max-count=1 --skip=1
  • git describe --tags --match "v*" --abbrev=0 git rev-list --tags="v*" --max-count=1 --skip=1

后者,例如,當在v6.0.0上運行時,在沒有跳過選項的情況下運行時給出最新的標簽 ( v6.0.0 ),但在跳過選項設置為 1 時給出v4.0.0

我已經做了很多谷歌搜索,但我找不到任何可靠的東西。

總而言之,我追求的是:此分支上最近的版本標簽(不包括附加到當前位於 HEAD 的提交的版本標簽)

跳過HEAD

git describe --abbrev=0 --match="v*" --tags HEAD~

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM