大家好,我是若川。眾所周知,我參加了掘金創作者人氣作者投票活動,最后3天投票。今天可投28票,明天32票,后天36票(結束)。投票操作流程看這里:一個普通小前端,將如何再戰掘金年度創作者人氣榜單~
tig 我必裝。我之前文章也寫過使用 ohmyzsh 打造 windows、ubuntu、mac 系統高效終端命令行工具。推薦給大家。
工欲善其事,必先利其器。對于IT從業者來說,git估計天天在用,常用的命令已經滾瓜爛熟了。遇到緊急Bug,先Stash存一下然后切換分支開始修復也是常規操作,熟練了三秒不到。簡化操作就是珍惜生命
tig是一個圖形化git命令行工具,將很多操作簡化了,如果你使用的是的VIM或者你對linux的操作有了解,那么它可以很好幫助你提高開發效率。眾所周知,很多開發任務并行時候,環境切來切去是很費時間的。對于工具來說,tig上手成本足夠低,雖然它并不是最好用的。
tig
就是git反過來寫,很強大的終端圖形化git管理工具。
主要是熟悉幾個命令, Ctrl+C
可以退出交互
安裝
Mac
brew?update
brew?install?tig
CentOS
sudo?yum?update
sudo?yum?install?tig
Ubuntu
sudo?apt-get?update
sudo?apt-get?install?tig
視圖
有這么幾種視圖模式
m mainView(默認視圖)

s statusView
自上而下分別是
需要提交的文件,可以按
C
提交有追蹤未提交的文件
新增未追蹤的文件
r refs
感覺類似git branch,方便查看所有分支。加上/
的搜索,n/N
切換上下可以很快定位到你需要的分支
y stash
中文應該翻譯為儲藏區,比如要將本地修改但是不需要提交的文件緩存,方便bugfix后回來恢復現場
d diffView
類似git diff
l logView
類似git log
其他的可以看tig h
幫助文檔
分屏操作
查看信息的時候會發現會自動分左右兩塊屏幕,可以通過Tab
切換左右兩塊屏幕的視圖
也可以在選中右側屏幕時,按住shift
+上下切換(j/k
)來固定右分屏切換左側分屏選擇信息
指南
tig?status?#?進入status視圖,會注明?Untracked?files/Changes?not?staged?for?commit/Changes?to?be?committed?的文件
tig?blame?<file>?#?查詢文件的每一行最后修改信息
tig?<branchname>?#?查看某個分支的提交信息
tig?<oldBranch>..<newBranch>?#?查看兩個分支的diff
tig?<filename>?#?查看某個文件的提交歷史
需要結合常見的vim光標移動和翻頁操作
hjkl?左下上右
ctrl+d?down下翻半頁
ctrl+u?up上翻半頁
空格?下翻一頁
-?上翻一頁
@?代碼塊粒度滾動
常見操作
add/unadd
常見的,可以這么幾步
tig
后s
進入status View選擇文件后按
u
,可以將文件加入staged,也可以將staged的文件移出
commit/uncommit
上面進入status View后,staged的文件,按C
可以進入Commit,然后i
輸入commit message后:x
保存退出就可以了
順手查了下
:x
和:wq
的區別::wq
會強制寫入文件,就算內容沒變化也會改mtime,而:x
比較智能內容不變化mtime不變
switch branch
進入tig的refs視圖,選擇好分支后C
檢出分支即可
Run?`git?checkout?mmbizwxaproducttradeweb_pphu_aftersale`??[Yy/Nn]
輸入y
即可
stash
當然上面你會說有文件要先存一下再去切換分支做bugfixs,可以用到stash stash一般翻譯為暫存區,就是緩存文件的一個區域
存
gsta?#?git?plugin縮寫
git?stash?push?#?git?stash?push?-u,-u?參數是包含未跟蹤的文件
通過git plugin的快捷鍵操作
取
tig
+y
進入stashView, 通過P
將暫存區的內容應用到本地
A??git?stash?apply?%(stash)
P??git?stash?pop?%(stash)
!??git?stash?drop?%(stash)
搜索
/
進入搜索,n/N
選擇下/上一個搜索對象
revert
有時候要丟棄工作區的修改,可能會用git checkout -- .
或者git reset HEAD
來恢復整個工作區
有了tig可以直接在status View直接按!
,會提示你是否revert,輸入y
即可
Are?you?sure?you?want?to?revert?changes??[Yy/Nn]
diff branch
比較兩個分支的不同,比如當前在B分支已經合并了master,需要與master分支比對
tig?master..B?#?可省略為下面的寫法,因為當前為B分支
tig?master..
此時跟git diff
視圖類似,會列出B分支多出來的commit,這時輸入f
會進入查找,輸入d
會進入diff view,都會列出所有的改動文件列表