bsd
bsd

Reputation: 6173

How to compare two tags with git?

I would like to do a diff between two tags and committed changes between those two tags. Could you please tell me the command?

Upvotes: 594

Views: 394436

Answers (5)

frmbelz
frmbelz

Reputation: 2543

Number of insertions/deletions between 2 tags (combine all commits between tags, for example, 1 file was changed/committed 6 times between tags)

git log --numstat --format='' v1.0..v1.1 | awk '{files += 1}{ins += $1}{del += $2} END{print "total: "files" files, "ins" insertions(+) "del" deletions(-)"}'
total: 6 files, 57 insertions(+) 12 deletions(-)

diff between tags, for example, diff of the same file at tag v1.0 and at v1.1

 git diff --shortstat v1.0 v1.1
 1 file changed, 50 insertions(+), 5 deletions(-)

Just to show that stats for diff (kind of similar to vimdiff), and for all commits in between are different.

Upvotes: 1

gauteh
gauteh

Reputation: 17195

$ git diff tag1 tag2

or show log between them:

$ git log tag1..tag2

sometimes it may be convenient to see only the list of files that were changed:

$ git diff tag1 tag2 --stat

and then look at the differences for some particular file:

$ git diff tag1 tag2 -- some/file/name

A tag is only a reference to the latest commit 'on that tag', so that you are doing a diff on the commits between them.

(Make sure to do git pull --tags first)

Also, a good reference: https://git-scm.com/docs/git-diff

Upvotes: 1000

Lulupointu
Lulupointu

Reputation: 3584

As @Nakilon said, their is a comparing tool built in github if that's what you use.

To use it, append the url of the repo with "/compare".

Upvotes: 2

Tom Howard
Tom Howard

Reputation: 4908

For a side-by-side visual representation, I use git difftool with openDiff set to the default viewer.

Example usage:

git difftool tags/<FIRST TAG> tags/<SECOND TAG>

If you are only interested in a specific file, you can use:

git difftool tags/<FIRST TAG>:<FILE PATH> tags/<SECOND TAG>:<FILE PATH>

As a side-note, the tags/<TAG>s can be replaced with <BRANCH>es if you are interested in diffing branches.

Upvotes: 7

Nakilon
Nakilon

Reputation: 35074

If source code is on Github, you can use their comparing tool: https://help.github.com/articles/comparing-commits-across-time/

Upvotes: 16

Related Questions