gherkins
gherkins

Reputation: 14983

git describe show only latest tag and additional commits

Is there any syntax for git describe to display only the latest tag and additional commits?

So that you get

4.0.7 for being at the commit tagged 4.0.7
4.0.7-12 for having 12 commits since tag 4.0.7

git describe --tags is pretty close with 4.0.7-12-g09181 but i haven't found a way to get rid of the hash being appended.

git describe --tags --abbrev=2

still displays 4.0.7-12-g0918

git describe --tags --abbrev=0

displays 4.0.7 only.

Upvotes: 9

Views: 6957

Answers (2)

Wouter Vandevelde
Wouter Vandevelde

Reputation: 904

I ran into a similar problem where I wanted to generate a string like: "tag-commits" but optionally followed with the -dirty and/or -broken suffix.

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

(Dirty simply indicates that you have uncommitted changes).

The accepted answer would however remove the -dirty (or when used -broken) tag at the end and leave the hash in the output.

To fix this I wrote the following command:

git describe --tags --dirty | sed 's/-g[a-z0-9]\{7\}//'

This works because the hash always starts with a "g" followed by 7 characters.

Upvotes: 5

gherkins
gherkins

Reputation: 14983

There is no option in the describe command to do what you want. You could pipe the output to a shell script that removes the hash.

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

see https://stackoverflow.com/a/32084572/1468708

thx !

Upvotes: 7

Related Questions