本文只是简单地讲述我本身在使用GNU Emacs、Fork,以及Visual Studio Code查看Git仓库的不一样分支的diff上的经历。html
当使用Emacs时,我更喜欢用M-x package-install
安装的magit
提供的功能——magit-diff
,而不是它自带的vc-dir
。按下M-x
,输入magit-diff
并敲下回车后,Emacs会在minibuffer中等待用户输入要比较的分支。就像在shell中使用git-diff
同样,只须要输入两个以..
链接的分支名并敲下回车,就能够列出它们间的差别。以下图所示git
上图是master与re两个分支间的差别。magit-diff
会列出两个分支间不一致的文件,与直接使用git-diff
命令没有不一样。往下滚动跨过文件清单后,还能够查看单个文件的差别。以下图所示github
第一次知道Fork是在知乎闲逛的时候,好像是在浏览“Mac下有什么值得推荐的软件”这类问题时看到的。某一次,为了能直观地查看两个commit间的差别,便试用了一番,效果确实不错。Fork的界面以下图所示shell
还记得,当时为了可以比较两个commit间的差别,我还在Fork的菜单栏中翻了好久——虽然是毫无收获。结果发现,原来只须要选中两个commit就能够了。以下图所示编辑器
图片两行蓝色的就是我选中的两个commit——先用鼠标点击其一,按住control
键后再选中另外一个便可。图片下方的部分与magit-diff
差很少,应该也算是一目了然了。函数
本来我以为Fork已经足够好了,某一天在用VSCode时才突然发现,在Fork中显示的代码差别,是没有语法高亮的。一般来讲,即便没有语法高亮,查看短小的diff也不成问题。但若是差别的内容不少,或是diff位于一个很长的函数内部,这时光靠diff来作代码审查已经不太够了——由于很差肯定在这片diff中出现的变量和函数,究竟是不是正确地定义了的。spa
后来我发现,VSCode自带的“源代码管理”,即使是在查看diff时也是有语法高亮的——不只有语法高亮,对于Node.js代码而言,还有ESLint的提示和“跳转到定义”的功能,awesome!不愧是全宇宙最好用的编辑器(笑code
为了能够用VSCode来查看两个分支间的差别,放狗搜了一下,找到了神器GitLens。htm
安装GitLens后,VSCode的最左侧会多出一个菜单项,在其中能够方便地选择两个分支来进行比较。首先,找到一个要比较的分支,选择“Select for Compare”。以下图所示blog
再选中另外一个要比较的分支,右键单击选择“Compare with Selected”,而后即可以在下方看到VSCode罗列出不一致的文件清单了。以下图所示
VSCode是最吼的!
全文完。
【阅读原文】