How to get list of latest tags in remote git?
Do you use linux? If so you can use this command
git ls-remote --tags | grep -o 'refs/tags/dev-[0-9]*\.[0-9]*\.[0-9]*' | sort -r | head | grep -o '[^\/]*$'
It will show you 10 latest tags (with name dev-x.y.z)
UPD
You can use this bash script to get latest tags:
#!/bin/bash
TAGS=("dev-[0-9]*\.[0-9]*\.[0-9]*" "test-[0-9]*\.[0-9]*\.[0-9]*" "good-[0-9]*" "new [0-9][0-9][0-9]")
for index in ${!TAGS[*]}
do
git ls-remote --tags | grep -o "refs/tags/${TAGS[$index]}" | sort -rV | head | grep -o '[^\/]*$'
done
Just add in array TAGS regular expressions that you want, and you'll get 10 latest tags for every of them. If you want to get more or less tags, just add param -n to head command 'head -n 5' or 'head -n 15'.
Just in case. Save it in folder ~/bin (for example with name git_tags), then add executable permission (chmod +x git_tags), this will allow you to run this bash script from every place (just type git_tags).
git ls-remote --tags | awk -F'/' '/[0-9].[0-9].[0-9].*/ { print $3}' | sort -nr | head -n1
Using github api:
curl https://api.github.com/repos/user/repo/tags | jq '.[] .name' | sort -nr | head -n1
These two will get you latest tag, you can increase the list by changing the value at n
flag for head pipe. lets say, to get top 10 latest lists head -n10
some guy told me that command:
git ls-remote -t repo.url.git | awk '{print $2}' | cut -d '/' -f 3 | cut -d '^' -f 1 | sort -b -t . -k 1,1nr -k 2,2nr -k 3,3r -k 4,4r -k 5,5r | uniq
and this is not the best solution, but he opened my eyes on command sort
.
but i would like to know other versions.