不一樣工具查看代碼分支diff的差別

本文只是簡單地講述我本身在使用GNU EmacsFork,以及Visual Studio Code查看Git倉庫的不一樣分支的diff上的經歷。html

Emacs

當使用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

第一次知道Fork是在知乎閒逛的時候,好像是在瀏覽「Mac下有什麼值得推薦的軟件」這類問題時看到的。某一次,爲了能直觀地查看兩個commit間的差別,便試用了一番,效果確實不錯。Fork的界面以下圖所示shell

還記得,當時爲了可以比較兩個commit間的差別,我還在Fork的菜單欄中翻了好久——雖然是毫無收穫。結果發現,原來只須要選中兩個commit就能夠了。以下圖所示編輯器

圖片兩行藍色的就是我選中的兩個commit——先用鼠標點擊其一,按住control鍵後再選中另外一個便可。圖片下方的部分與magit-diff差很少,應該也算是一目瞭然了。函數

Visual Studio Code

本來我以爲Fork已經足夠好了,某一天在用VSCode時才突然發現,在Fork中顯示的代碼差別,是沒有語法高亮的。一般來講,即便沒有語法高亮,查看短小的diff也不成問題。但若是差別的內容不少,或是diff位於一個很長的函數內部,這時光靠diff來作代碼審查已經不太夠了——由於很差肯定在這片diff中出現的變量和函數,究竟是不是正確地定義了的。spa

後來我發現,VSCode自帶的「源代碼管理」,即使是在查看diff時也是有語法高亮的——不只有語法高亮,對於Node.js代碼而言,還有ESLint的提示和「跳轉到定義」的功能,awesome!不愧是全宇宙最好用的編輯器(笑code

爲了能夠用VSCode來查看兩個分支間的差別,放狗搜了一下,找到了神器GitLenshtm

安裝GitLens後,VSCode的最左側會多出一個菜單項,在其中能夠方便地選擇兩個分支來進行比較。首先,找到一個要比較的分支,選擇「Select for Compare」。以下圖所示blog

再選中另外一個要比較的分支,右鍵單擊選擇「Compare with Selected」,而後即可以在下方看到VSCode羅列出不一致的文件清單了。以下圖所示

VSCode是最吼的!

全文完。

閱讀原文

相關文章
相關標籤/搜索