我想在两个标签之间做一个区别,并在这两个标签之间提交更改。你能告诉我命令吗?


$ git diff tag1 tag2

或者在它们之间显示log:

$ git log tag1..tag2

有时,只查看被更改的文件列表可能会很方便:

$ git diff tag1 tag2 --stat

然后看看某些特定文件的差异:

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

一个标签只是一个对最近提交的引用,所以你在它们之间做了一个不同的提交。

(确保先执行git pull -tags)

还有一个很好的参考:https://git-scm.com/docs/git-diff


如果源代码在Github上,你可以使用他们的比较工具:https://help.github.com/articles/comparing-commits-across-time/


对于一个并排的可视化表示,我使用git difftool和openDiff设置为默认查看器。

使用示例:

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

如果你只对特定的文件感兴趣,你可以使用:

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

作为旁注,如果您对区分分支感兴趣,标签/<TAG>s可以替换为<BRANCH>es。


正如@Nakilon所说,如果你使用github,他们是一个内置的比较工具。

要使用它,用“/compare”附加回购的url。


2个标签之间插入/删除的次数(结合标签之间所有提交,例如,一个文件在标签之间被更改/提交了6次)

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(-)

标记之间的差异,例如,同一文件在标记v1.0和v1.1上的差异

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

只是为了显示diff(有点类似于vimdiff)的统计数据,以及两者之间的所有提交的统计数据是不同的。