我想在两个标签之间做一个区别,并在这两个标签之间提交更改。你能告诉我命令吗?
$ 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。
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)的统计数据,以及两者之间的所有提交的统计数据是不同的。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别