我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

以前使用tortoisesvn的时候,苏南大叔有个特别喜欢的功能,就是查看某个文件的提交历史,然后对比看看前后都修改了一些什么代码。现在从win下的svn,迁移到mac下的git之后。查看某个文件的历史,也变得很痛苦麻烦了。

苏南大叔:如何查看某个文件的 git 代码变更历史? - github
如何查看某个文件的 git 代码变更历史?(图7-1)

那么如何才能更快捷方便地查看某个文件的更新历史呢?苏南大叔给出了以下几种方案。大家可以都试试。

使用sourcetree的搜索功能

sourcetree的主界面上,左侧菜单里面有个workspace子菜单,有个搜索功能,可以搜索文件的提交历史信息。关键词是每次commit的时候,大家填写的信息。然后就可以看到该次提交的所有的文件了,然后在左下角的列表中,可以使用右键菜单,查看文件的提交历史。

苏南大叔:如何查看某个文件的 git 代码变更历史? - sourcetree-log
如何查看某个文件的 git 代码变更历史?(图7-2)

或者在每次的提交列表中,查找到相关文件的列表(目录),然后就右键菜单,查看历史。思路就是:在目标文件上或者周围,做点小改动,以期待提交列表中,出现对应列表。然后就可以调用右键菜单,查看历史了。

苏南大叔:如何查看某个文件的 git 代码变更历史? - sourcetree_menu2
如何查看某个文件的 git 代码变更历史?(图7-3)

使用编辑器的集成功能(推荐)

利用常见的编辑器,比如webstorm/phpstrom/idea等编辑器,这个方案比较容易,因为本来左侧就有列表,找到列表,点击右键,Git=>show history。就可以在界面下方,看到列表了。然后双击列表,就可以查看历史log细节了。

苏南大叔:如何查看某个文件的 git 代码变更历史? - log方案1
如何查看某个文件的 git 代码变更历史?(图7-4)

苏南大叔:如何查看某个文件的 git 代码变更历史? - log方案1-2
如何查看某个文件的 git 代码变更历史?(图7-5)

也可以,直接右键,使用Local History=>Show History菜单。弹出的列表框比上述方案更友好些。不过,两个Histroy的结果,是有一些差异的,读者可以自行体会。

苏南大叔:如何查看某个文件的 git 代码变更历史? - log方案2
如何查看某个文件的 git 代码变更历史?(图7-6)

直接使用git log命令

cd到项目的根目录下面,然后执行下面的git log命令,可以查看文件的修改记录。

git log <文件名>

回显信息类似如下:

commit 97255366931a409495c0bc307c11be39eb0c3230
Author: sunan <sunan@sunan.com>

注意查看里面的commit值,这个就是<logid>。这个值就是苏南大叔查看log的依据。

git show <logid>

苏南大叔:如何查看某个文件的 git 代码变更历史? - git-log
如何查看某个文件的 git 代码变更历史?(图7-7)

这个时候会进入一种奇怪模式,使用q才能退出当前的模式,使用enter可以查看下部分内容。

总结

sourcetree里面的一些功能,还是有些地方,不是那么智能的。结合git这个命令行工具,才能比较完美的实现需求。

更多git相关经验文章,请点击苏南大叔的文章查看。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   sourcetree    git