git describe仅显示最新标记和其他提交

时间:2016-05-19 07:45:11

标签: git command-line git-describe

git describe是否有任何语法只显示最新标记和其他提交?

这样你就得到了

4.0.7在提交标记为4.0.7的情况下 4.0.7-12自标记4.0.7

以来有12次提交

git describe --tags4.0.7-12-g09181非常接近,但我还没有找到摆脱附加哈希值的方法。

git describe --tags --abbrev=2

仍显示4.0.7-12-g0918

git describe --tags --abbrev=0

仅显示4.0.7

2 个答案:

答案 0 :(得分:5)

我遇到了类似的问题,我想生成一个字符串,如:“tag-commits”,但可选地后跟-dirty和/或-broken后缀。

Sub edge()

On Error Resume Next

Dim lastRowIndex As Integer
Dim firstRowIndex As Integer
Dim MyString As String


lastRowIndex = ActiveSheet.UsedRange.Rows.Count

MyString = Application.ThisCell.Address
firstRowIndex = Range(MyString).Select

For i = firstRowIndex To lastRowIndex
If i Mod 2 <> 0 Then
    If Range("A" & i).Value = Range("A" & i + 1).Value Then
            If Range("G" & i).Value > Range("G" & i + 1).Value Then
                    If Range("H" & i).Value = "0" Then Range("N" & i).Value = "TE"
                    ElseIf 0.01898 < Val(Range("G" & i).Value) < 0.02149 Then Range("N" & i).Value = "LE"
                    **ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"**
                    End If

            ElseIf Range("G" & i).Value < Range("G" & i + 1).Value Then
                    If Range("H" & i).Value = "0" Then Range("N" & i).Value = "LE"
                    ElseIf 0.01898 < Val(Range("G" & i).Value) < 0.02149 Then Range("N" & i).Value = "LE"
                    ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"
                    End If



ElseIf i Mod 2 = 0 Then
    If Range("A" & i).Value = Range("A" & i - 1).Value Then
            If Range("G" & i).Value > Range("G" & i - 1).Value Then
                    If Range("H" & i).Value = "0" Then Range("N" & i).Value = "TE"
                    ElseIf 0.01898 < Val(Range("G" & i).Value) < 0.02149 Then Range("N" & i).Value = "LE"
                    ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"

            ElseIf Range("G" & i).Value < Range("G" & i - 1).Value Then
                    If Range("H" & i).Value = "0" Then Range("N" & i).Value = "LE"
                    ElseIf 0.01898 < Val(Range("G" & i).Value) < 0.02149 Then Range("N" & i).Value = "LE"
                    ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"
            End If
    End If
End If


Next

End Sub

(Dirty只表示您有未提交的更改)。

然而,接受的答案会删除末尾的-dirty(或使用的 - 破坏)标记,并将哈希留在输出中。

为了解决这个问题,我编写了以下命令:

1.0-3    
1.0-3-dirty
1.0-3-dirty-broken

这是有效的,因为哈希始终以“g”开头,后跟7个字符。

答案 1 :(得分:2)

  

describe命令中没有选项可以执行您想要的操作。您可以将输出传递给删除哈希的shell脚本。

git describe --tags | sed 's/\(.*\)-.*/\1/'

请参阅https://stackoverflow.com/a/32084572/1468708

thx!