Reputation: 3253
If I've a git repository with tags representing the versions of the releases.
How can I get the list of the commits between two tags (with a pretty format if is possible) ?
Upvotes: 300
Views: 160033
Reputation: 149
Consider also this:
git range-diff tagA...tagB
Source: https://git-scm.com/docs/git-range-diff
Upvotes: 7
Reputation: 353
If your team uses descriptive commit messages (eg. "Ticket #12345 - Update dependencies") on this project, then generating changelog since the latest tag can de done like this:
git log --no-merges --pretty=format:"%s" 'old-tag^'...new-tag > /path/to/changelog.md
--no-merges
omits the merge commits from the listold-tag^
refers to the previous commit earlier than the tagged one. Useful if you want to see the tagged commit at the bottom of the list by any reason. (Single quotes needed only for iTerm on mac OS).Upvotes: 6
Reputation: 12541
To compare between latest commit of current branch and a tag:
git log --pretty=oneline HEAD...tag
Upvotes: 41
Reputation: 301147
git log --pretty=oneline tagA...tagB
(i.e. three dots)
If you just wanted commits reachable from tagB but not tagA:
git log --pretty=oneline tagA..tagB
(i.e. two dots)
or
git log --pretty=oneline ^tagA tagB
Upvotes: 358
Reputation: 436
To style the output to your preferred pretty format, see the man page for git-log
.
Example:
git log --pretty=format:"%h; author: %cn; date: %ci; subject:%s" tagA...tagB
Upvotes: 27
Reputation: 2294
FYI:
git log tagA...tagB
provides standard log output in a range.
Upvotes: 5
Reputation: 4004
git log
takes a range of commits as an argument:
git log --pretty=[your_choice] tag1..tag2
See the man page for git rev-parse
for more info.
Upvotes: 32