怎样在Git log中获取两个主要版本之间的变更记录
来源:互联网 发布:hl线切割锥度编程视频 编辑:程序博客网 时间:2024/05/14 14:04
这是科研中遇到的现实问题,觉得解决过程挺有意思的,简单记录一下:
我们知道Git的Commit都是用SHA1 Hash值表示的,通过git log命令实际上很容易对多个Commit进行统计、查询、显示。但是在软件工程领域的研究中,我们通常会比较关心某个软件在两个版本之前是怎样演化的,这时候简单操作SHA1值是得不到我们想要的结果的。所以要实现这个需求还稍微有点麻烦:
我们知道,Git中可以通过打标签标示重要、主要的版本演化,例如我们可以参考这里的介绍:
http://blog.csdn.net/liuyuntianxia_128/article/details/53840493
我们以Apache Ant为例,如果输入:
git tag
会显示Apache Ant的所有主要版本,例如:ANT_170和ANT_198_RC1,这两个Tag很好理解,分别是ant 1.7.0和ant 1.9.8-RC。
接下来我们希望能获取上面两个版本之间的所有Commit记录,应该怎么做呢?
网上实际上已经有很多对git log命令的介绍,例如这里:
http://blog.csdn.net/wh_19910525/article/details/7468549
另外实际上在Git官网上也有多git log命令的简介:
https://www.git-scm.com/docs/git-log
但是都没有能完全满足上面这个需求的,仔细看看下面这个网页,可以看到有这样一个例子:
git log v2.6.12.. include/scsi drivers/scsi
似乎可以指定从哪个Tag开始,那也应该可以指定从哪个Tag结束吧,简单找了找,发现果然在StackOverflow上有人问这个问题了:
http://stackoverflow.com/questions/8136178/git-log-between-tags
所以要实现我们的目标,其实也很简单:
git log ANT_170..ANT_198_RC1 --name-status > version-log-ant.txt
将log输出到一个txt文件中,然后就可以进行后续分析了。
如果想知道每次Commit修改了哪些行,可以用这个命令:
git log ANT_170..ANT_198_RC1 --stat > change-details.txt
就是这个简单的过程,但也经历了一些探索,所以简单总结一下,希望对其他朋友会有点帮助。
- 怎样在Git log中获取两个主要版本之间的变更记录
- Python-Pysvn中获取两个版本之间的diff
- 统计两个版本之间代码变更行数
- git比较两个版本之间的区别
- Python在两个数字之间获取n个随机数,并记录在文件中
- 从git里面提取两个commit之间变更过的文件
- diffcount统计两个版本之间代码变更行数
- GIT 导出两个版本之间变动的文件
- git变更记录
- git log 查找文件变更
- 怎样在Windows系统中获取开源软件SVN更多的Revision记录
- 一种查看chromium代码两任何两个版本之间修改Log的方法
- iOS-在Xcode中使用Git进行源码版本控制(三:版本之间的比较)
- 原创!在ASP中怎样获取Identily的值(怎么获取新添加记录的自动编号)
- 在ASP中怎样获取Identily的值(怎么获取新添加记录的自动编号)
- 在ASP中怎样获取Identily的值(怎么获取新添加记录的自动编号)
- R12 中 java版本的变更
- mysql各个主要版本之间的差异.
- SharedPreferences中getBoolean()
- 【oracle】oracle建立全文检索
- pb文件的使用
- leetcode 94 Binary Tree Inorder Traversal C++
- Windows下Nginx的启动、停止等命令
- 怎样在Git log中获取两个主要版本之间的变更记录
- tar 命令出现 Cowardly refusing to create an empty archive 问题详解
- window.opener
- 简单了解搜索引擎是如何工作的
- sqoop2安装
- 如何阅读论文
- spring管理bean的生命周期与spring通过工厂方法配置bean
- 【iOS开发】 App 上架 appstore
- js基础