We use tags in git as part of our deployment process. From time to time, we want to clean up these tags by removing them from our remote repository.
This is pretty straightforward. One user deletes the local tag and the remote tag in one set of commands. We have a little shell script that combines both steps.
The 2nd (3rd, 4th,...) user now has local tags that are no longer reflected on the remote.
I am looking for a command similar to
git remote prune origin
git tag -l
Good question. :) I don't have a complete answer...
That said, you can get a list of remote tags via
git ls-remote. To list the tags in the repository referenced by
origin, you'd run:
git ls-remote --tags origin
That returns a list of hashes and friendly tag names, like:
94bf6de8315d9a7b22385e86e1f5add9183bcb3c refs/tags/v0.1.3 cc047da6604bdd9a0e5ecbba3375ba6f09eed09d refs/tags/v0.1.4 ... 2f2e45bedf67dedb8d1dc0d02612345ee5c893f2 refs/tags/v0.5.4
You could certainly put together a bash script to compare the tags generated by this list with the tags you have locally. Take a look at
git show-ref --tags, which generates the tag names in the same form as
As an aside,
git show-ref has an option that does the opposite of what you'd like. The following command would list all the tags on the remote branch that you don't have locally:
git ls-remote --tags origin | git show-ref --tags --exclude-existing