不同工具查看代碼分支diff的差異

本文只是簡單地講述我自己在使用GNU EmacsFork,以及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是最吼的!

全文完。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章