ubuntu: sudo apt-get install tig
centos: yum install tig
macOS: brew install tig
Git 和 tig 的關系有點像 top 和 htop, 是一種命令行交互式操作工具 tig 的所有功能都是 Git 命令行已經具備的, tig 提供了一種直觀, 方便快捷的 Git 操作.
在 Git 項目中敲 tig, 進入 tig 界面后再敲 h (代表help) 即可進入幫助界面, 該界面列出了所有常用命令項目分支下直接敲 tig, 進入到了 log 界面, 使用 j/k 或 上/下 鍵可以選擇指定提交, 回車后, 界面的一半會展示此次commit詳情, 此時, 上/下 鍵可以選擇 log 中的 commit, 詳情界面會跟着變化, 而 j/k 鍵會在 commit 詳情內移動焦點, 選中 commit 中列出的文件, 回車會跳轉到該文件的詳情, 而使用 @ 可以按照代碼塊的粒度來瀏覽 commit 中的內容, 通過這些操作, 我們可以很容易的快速瀏覽log 中多個commit 中的內容, 而這一點通過 Git 命令或 GUI 都是很難快速方便的完成的.

快速查看 log 詳情及 help


tig 的 status 界面

tree 界面

blame 界面下快速查看 commit 全貌
如何查看 diff 中某句修改時整個文件的面貌呢? 實際上在 diff 界面也可以直接敲 b 進入 blame 界面即可查看截止此次提交時該文件的全貌, 如果明確知道想要看哪個文件的 blame 全貌, 也可以 直接使用 tig blame filename.
如何查看一個文件的全部提交記錄? 以及快速查看某次提交的全部內容? 有了 tig, 可以輕松做到這一點, 直接 tig filename, 進入到該文件的 tig 主界面, 即可快速查看指定文件的 log 和提交內容, 你還可以選擇只查看某個 commit 以及之前的提交, 只需要使用 tig commit-id filename 即可.
如何查找 commit message 中帶有指定文字的 commit 呢? 如果終端本身支持搜索功能, 使用終端自帶的 cmd + f 即可搜索 tig 主界面中的任何文本, 那如何通過 commit-id 查找呢? tig 主界面中默認沒有展示 commit-id, 使用 shift + x 即可展示 commit-id.
tig 也自帶搜索功能, 敲 / 即可進入, 輸入字符后回車, 將高亮展示所有匹配項, 敲 n 將聚焦到離當前焦點最近的下方的匹配項, 大寫 N 則是上方的匹配項, 敲回車將展示詳情.

tig 的原生搜索功能
在提交 commit 中常常會碰到按代碼塊的粒度來提交的需求, 使用原生的 git add -i 略顯繁瑣, 在 tig 中, 這個操作變得無比簡單, 只需要在 staged changes 或 unstaged changes 使用 @ 選中代碼塊, 敲 u 即可改變狀態, 如果你只想改變一行代碼的狀態, 使用 j/k 選中要改變的單行代碼, 用數字鍵 1 代替 u 即可實現這個原本用 Git 命令行很難實現的功能.
進入 tig 主界面敲 r 即可看到項目分支列表, 在分支下敲回車即可進入 log 界面, 使用這個功能可以快速在不同分支之間查閱代碼, 免去了頻繁切換分支的麻煩, 需要切換分支時, 選中分支按住 shift + c 即可.

快速在不同分支中查看具體 commit
作者:Valence
鏈接:https://www.jianshu.com/p/e4ca3030a9d5
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。