Get all git commits since last tag
git, version-control
Solution
git log <yourlasttag>..HEAD
If you want them like in your example, on the one line with commit id + message, then
git log <yourlasttag>..HEAD --oneline
and in case you don't know your latest tag or want this to be dynamic, on Linux / git bash / Windows bash you could do:
git log $(git describe --tags --abbrev=0)..HEAD --oneline
and on Windows:
for /f "delims=" %a in ('git describe --tags --abbrev^=0') do @set latesttag=%a
git log %latesttag%..HEAD --oneline
Also, if you have a case where you know a tag in history and want to print everything from that tag up to current situation, you might want to add also `--decorate` so it would print out any tags in between.
Problem
When I'm going to tag a commit, I need to know what changed since the last tagged commit. Eg: ``` a87a6sdf87a6d4 Some new feature a87a6sdf87a6d3 Some bug fix a87a6sdf87a6d2 Some comments added a87a6sdf87a6d1 Some merge <- v1.4.0 ``` In this example I would like to know about the 3 newest commits, or be able to print a log like above, that shows both commits their tags if any. And when I see there has been a new feature added, I would tag it v1.5.0. How do you deal with this? Is this how I'm supposed to use tags? What should I write in the tag message? I always leave it blank: `git tag -a v1.2.3 -m ''`