[開發工具分享][Git] ConEum - 用cmd.exe下Git指令的另一種選擇

ConEum - 用cmd.exe下Git指令的另一種選擇

情境描述

一般情況,當我們用Visual Studio在開發專案的時候,如果版控是採用Git的話,那麼我們通常都會使用VS內建的Git工具來操作Git的許多功能(如查看程式碼異動、歷史紀錄、建立或合併分支等等)

但是在去年九月或十月的某個時間點,可能是Visual Studio更新,也可能是Windows更新,總之Visual Studio的Git版控工具就這麼掛點了,我的VS版本是2017 Enterprise,很多同事也遇到相同的情況,當要看專案Git的資訊的時候,就會跑出下列的畫面

https://ithelp.ithome.com.tw/upload/images/20200103/20116204Z4Y2goItbv.png

所以我嘗試了以下各種故障排除的動作:

  • 重新安裝VS Git Extension
  • 重新安裝Git
  • 重新安裝Visual Studio 2017 Enterprise
  • 重新安裝Windows 10

是的你沒看錯,重新安裝Windows 10,但弔詭的是,就算重新安裝Windows,也沒辦法把問題排除,無計可施的情況下,只好選擇先使用別的Git GUI管理工具了,雀屏中選的是Sourcetree,沒有啥特別的原因,只因為他在Git GUI Clients排第一個:D

替代方案:Sourcetree

Sourcetree簡單好用,介面規劃的相當清楚,相關的(繁體)文章也十分眾多,因為本篇主要介紹ConEmu所以就不多著墨在Sourcetree。

Sourcetree教學參考文章

但在使用了一陣子之後發現,它非常的吃資源,電腦好一點的可能無感,但是對我的電腦來說負擔就相當沉重,當我有需要開2~3個VS的時候,原本記憶體就滿緊了,Sourcetree再開下去,記憶體使用率就直達9X%~100%,當然我還有開Chrome或者其他應用程式,但不可能將它們全關掉只跑Sourcetree,如果再開多個Repository的話,那情況就更慘了,而我的電腦記憶體最大就支援到16G,沒辦法再擴充了(其實就是電腦爛該換一台了)。

所以就想要找一個工具,可以不用這麼吃資源的,如果找GUI的話就一定會吃資源,圖形化介面嘛,一個簡單的指令也要做個按鈕來按,所以要就徹底不用GUI,改下git指令,這應該是最省資源的方式。

下指令的話,命令提示字元(cmd)就可以辦到,但是那畫面太美我不敢看,雖然也有用一些顏色來區分一些訊息,例如下git status指令,cmd的畫面會像這樣。

https://ithelp.ithome.com.tw/upload/images/20200103/20116204O7Yglh3iuW.png

訊息不多的話,看起來還OK,可以接受,但若是下git diff

https://ithelp.ithome.com.tw/upload/images/20200103/20116204DihBVozbKS.png

首先畫面會變得很刺眼,再來中文的部分會變成亂碼,還有這字體我覺得應該有更好的,所以龜毛(?)的我實在是無法接受,在偶然的機會下,看到了同事正在下git指令,發現他的視窗真的是很漂亮,訊息排版很清楚,顏色也配的恰到好處,而且中文不會亂碼,在請教之後,他用的工具正是ConEmu

正篇開始:ConEmu

ConEmu官網與載點 Wiki百科介紹(英文)

下載並安裝之後,打開視窗,會先看到以下畫面

https://ithelp.ithome.com.tw/upload/images/20200105/20116204GWn22n3UYQ.png

一開始其實就是基本的命令提示字元(cmd)視窗,要操作專案git,首先你需要先對ConEmu進行設定,如下步驟

  1. 視窗右上角選擇setting https://ithelp.ithome.com.tw/upload/images/20200105/20116204cAPnxTKCdd.png

  2. General→Chose your startup task or even a shell with arguments: Bash::Git bash https://ithelp.ithome.com.tw/upload/images/20200105/20116204pcYKb5kPj4.png

  3. 設定完後,重啟ConEmu,就會是git操作模式 https://ithelp.ithome.com.tw/upload/images/20200105/20116204Z86Pi6lOvL.png

可以看到比較明顯的差異是多了一個master,這個是指目前專案的分支。

若是要進入到工作的專案,首先你得先進入到專案目錄,指令如下,要慢慢keyin有點麻煩,所以我都用檔案總管打開到該目錄,複製路徑直接貼上就可以。

cd /d/Projects/ObjectMapper

若是專案還沒從git平台下載下來,那就先從clone開始囉:P

git clone https://github.com/XXXXX/ObjectMapper.git

設定完成後,就來開始比較與一般cmd下git指令結果畫面的差異,首先是git status(查看版控的狀態)

https://ithelp.ithome.com.tw/upload/images/20200105/20116204yCfrSXV6VX.png

排版與字體變好看,顏色也不會這麼刺眼,讓使用者很容易看懂應該知道的訊息,再來看一下複雜一點的git diff(查看本次的差異)

https://ithelp.ithome.com.tw/upload/images/20200105/20116204nnNyCjajC0.png

排版與字體之外,繁體中文的顯示也完全沒有問題,Very good。

總結

這小工具完全符合我的龜毛需求,又省資源,在設定當中也可以設定字體、顏色、主題等等個人化風格,而且除了git操作外,要下其他cmd指令也都不是問題,相當好用,只是沒有GUI化,也許不太符合不習慣下指令操作的使用者需求,如果機器等級夠的話,而且用習慣GUI,Sourcetree其實也是個相當不錯的Git GUI。

由於這個工具我操作沒有很久,也只有用在git版控,所以沒辦法介紹太深入,對此有點不好意思,之後有更多發現再來分享,最後要感謝各位看官撥時間觀看,謝謝各位。

後記

  • 有類似的工具,Cmder,保哥分享的文章
  • 後來同事發現降版使用VS 2015可以正常使用VS Git Extension,但我不想,為何不想? 我也不知道,就不想:P