git - SourceTree比较版本差异

概述

SoruceTree 3.4.23

手头的SoruceTree版本还算是新的, 版本是3.4.23
在这里插入图片描述
将一个开源工程迁出到本地,在本地副上做了修改,在本地工作副本上做了提交。
现在想比较我最后的提交和修改前的原始实现有啥区别?
原本想,选中2个提交记录后,右击菜单或者工具条的菜单上应该有比较的选项,没找到。作者是咋设计分支的比较的呢?不符合常人思路啊。

最后发现,只要选中2个分支,SourceTree就已经将变化后的文件列出来了,只要双击就能看到区别:)
SourceTree的作者设计的人机互动挺精彩的,是极简操作了。

笔记

在这里插入图片描述
单击文件列表中的任意文件,就能看到2个版本中该文件的变化差异。
在这里插入图片描述
我已经在SourceTree中配置好了外部比较工具,只要双击文件列表中的任意文件,就能在BC4中看到文件在2个版本中的变化差异。
在这里插入图片描述

备注

这种方法,适用于在SourceTree中比较任意2个版本提交的区别比较。

SoruceTree 3.4.26

前几天做实验,将计算机上的大部分软件都卸载了。等需要的时候现装。
用到sourctree时,装了新版SourceTreeSetup-3.4.26.exe
等到要比较文件历史变化时,发现和以前有点不一样。
以前双击要看历史的文件,就能弹出bc4来比较文件的变化。
这次双击文件,居然是已经卸载的qt5来打开文件…
在这里插入图片描述
感觉双击并没有调用sourcetree配置的文件比较功能,而是直接执行了windows的双击操作。
在这里插入图片描述
果真如此啊。
比对配置用BC4和BC5都一样,和这个bug无关。
在这里插入图片描述
在这里插入图片描述

// 比较工具
D:\tools\file\BC4\Beyond_Compare_5.0.4.30422_64bit_Green\BCompare\BComp.exe
\"$LOCAL\" \"$REMOTE\"
// 合并工具
D:\tools\file\BC4\Beyond_Compare_5.0.4.30422_64bit_Green\BCompare\BComp.exe
\"$LOCAL\" \"$REMOTE\" \"$BASE\" -o \"$MERGED\"

在这里插入图片描述
用菜单上的比较功能好使,也可以使用CTRL + D 的快捷键。
这应该是sourctree新版的bug, 以前版本双击要比较的文件,是打开外部比较工具。而不是直接调用win10中的双击文件操作。

方便的用鼠标双击打开diff比对

发现,选中文件后,按住CTRL键,再用鼠标双击要查看diff的文件,就可以打开BC对当前文件和上一个版本的比对了。

确实是sourcetree的bug, 官方已经修复了

看官方开发日志(https://product-downloads.atlassian.com/software/sourcetree/windows/ga/ReleaseNotes_3.4.27.html),发现SourceTree 3.4.27 [04 December 2025]已经修复这个双击历史文件,不是比较文件历史,而是打开文件这个bug.
试了一下好使。
在这里插入图片描述
从开发日志能看出,是v3.4.26因为修复bug引入了新bug, 在v3.4.27恢复了双击文件的动作为比较文件版本历史。

如果装了新版本,向下拉历史记录时,会重新读的问题处理

如果克隆库时,是完整的克隆。本地浏览历史记录应该不用从远端读取。
但是发现装了v3.4.27后,向下拉历史记录,会重新读取log,读取还无法完成,导致无法看最早的项目历史记录。
找了一下,在选项中有将日志一次性装入的选项。
在这里插入图片描述
在这里插入图片描述

从一个版本增量做实验的方法

如果像从项目最初提交(或者是自己关心的一个历史提交)开始做实验。
可以先从开始点做一个分支并迁出分支为当前分支。
在这里插入图片描述
研究完这个分支的实现后,下一个提交,可以不用做新分支。用合并的方法就可以。
在这里插入图片描述
这样做实验就很方便了。
只有认为有价值或者保存时,才提交到自己的分支。然后从下一个提交开始,再做一个分支来研究。

END

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐