不同工具查看代码分支diff的差异

7次阅读

共计 1155 个字符,预计需要花费 3 分钟才能阅读完成。

本文只是简单地讲述我自己在使用 GNU Emacs、Fork,以及 Visual Studio Code 查看 Git 仓库的不同分支的 diff 上的经历。
Emacs
当使用 Emacs 时,我更喜欢用 M -x package-install 安装的 magit 提供的功能——magit-diff,而不是它自带的 vc-dir。按下 M -x,输入 magit-diff 并敲下回车后,Emacs 会在 minibuffer 中等待用户输入要比较的分支。就像在 shell 中使用 git-diff 一样,只需要输入两个以.. 连接的分支名并敲下回车,就可以列出它们间的差异。如下图所示

上图是 master 与 re 两个分支间的差异。magit-diff 会列出两个分支间不一致的文件,与直接使用 git-diff 命令没有不同。往下滚动跨过文件清单后,还可以查看单个文件的差异。如下图所示

Fork
第一次知道 Fork 是在知乎闲逛的时候,好像是在浏览“Mac 下有什么值得推荐的软件”这类问题时看到的。某一次,为了能直观地查看两个 commit 间的差异,便试用了一番,效果确实不错。Fork 的界面如下图所示

还记得,当时为了能够比较两个 commit 间的差异,我还在 Fork 的菜单栏中翻了很久——虽然是毫无收获。结果发现,原来只需要选中两个 commit 就可以了。如下图所示

图片两行蓝色的就是我选中的两个 commit——先用鼠标点击其一,按住 control 键后再选中另一个即可。图片下方的部分与 magit-diff 差不多,应该也算是一目了然了。
Visual Studio Code
原本我觉得 Fork 已经足够好了,某一天在用 VSCode 时才忽然发现,在 Fork 中显示的代码差异,是没有语法高亮的。通常来说,即使没有语法高亮,查看短小的 diff 也不成问题。但如果差异的内容很多,或是 diff 位于一个很长的函数内部,这时光靠 diff 来做代码审查已经不太够了——因为不好确定在这片 diff 中出现的变量和函数,到底是不是正确地定义了的。
后来我发现,VSCode 自带的“源代码管理”,即便是在查看 diff 时也是有语法高亮的——不仅有语法高亮,对于 Node.js 代码而言,还有 ESLint 的提示和“跳转到定义”的功能,awesome!不愧是全宇宙最好用的编辑器(笑
为了可以用 VSCode 来查看两个分支间的差异,放狗搜了一下,找到了神器 GitLens。
安装 GitLens 后,VSCode 的最左侧会多出一个菜单项,在其中可以方便地选择两个分支来进行比较。首先,找到一个要比较的分支,选择“Select for Compare”。如下图所示

再选中另一个要比较的分支,右键单击选择“Compare with Selected”,然后便可以在下方看到 VSCode 罗列出不一致的文件清单了。如下图所示

VSCode 是最吼的!
全文完。

正文完
 0