如何使用 Tig 瀏覽 Git 日誌

Tig 可不單單是 Git 的文本界面。如下是它如何加強你的平常工做流程。html

若是你使用 Git 做爲你的版本控制系統,你可能已經讓本身接受了 Git 是一個複雜的野獸的事實。它是一個很棒的工具,但瀏覽 Git 倉庫可能很麻煩。所以像 Tig 這樣的工具出現了。linux

來自 Tig 手冊頁git

Tig 是 git(1) 的基於 ncurses 的文本界面。它主要用做 Git 倉庫瀏覽器,但也有助於在塊級別暫存提交更改,並做爲各類 Git 命令的輸出分頁器。github

這基本上意味着 Tig 提供了一個能夠在終端中運行的基於文本的用戶界面。Tig 可讓你輕鬆瀏覽你的 Git 日誌,但它能夠作的遠不止讓你從最後的提交跳到前一個提交。ubuntu

Tig screenshot
Tig screenshot

這篇快速入門的 Tig 中的許多例子都是直接從其出色的手冊頁中拿出來的。我強烈建議你閱讀它以瞭解更多信息。vim

安裝 Tig

  • Fedora 和 RHEL: sudo dnf install tig
  • Ubuntu 和 Debian: sudo apt install tig
  • MacOS: :brew install tig

有關更多方式,請參閱官方安裝說明瀏覽器

瀏覽當前分支中的提交

若是要瀏覽分支中的最新提交,請輸入:bash

tig
複製代碼

就是這樣。這個三字符命令將啓動一個瀏覽器,你能夠在其中瀏覽當前分支中的提交。你能夠將其視爲 git log 的封裝器。app

要瀏覽這些輸出,可使用向上和向下箭頭鍵從一個提交移動到另外一個提交。按回車鍵將會垂直分割窗口,右側包含所選提交的內容。你能夠繼續在左側的提交歷史記錄中上下瀏覽,你的更改將顯示在右側。使用 kj 能夠逐行上下瀏覽,- 和空格鍵能夠在右側上下翻頁。使用 q 退出右側窗格。ionic

搜索 tig 輸出也很簡單。使用 / (向前)或 ? (向後)在左右窗格中搜索。

Searching Tig
Searching Tig

這些就足以讓你瀏覽你的提交信息了。這裏有不少的鍵綁定,但單擊 h 將顯示「幫助」菜單,你能夠在其中發現其導航和命令選項。你還可使用 /? 來搜索「幫助」菜單。使用 q 退出幫助。

Tig Help
Tig Help

瀏覽單個文件的修改

因爲 Tig 是 git log 的封裝器,它能夠方便地接受能夠傳遞給 git log 的相同參數。例如,要瀏覽單個文件的提交歷史記錄,請輸入:

tig README.md
複製代碼

將其與被封裝的 Git 命令的輸出進行比較,以便更清楚地瞭解 Tig 如何加強輸出。

git log README.md
複製代碼

要在原始 Git 輸出中包含補丁,你能夠添加 -p 選項:

git log -p README.md
複製代碼

若是要將提交範圍縮小到特定日期範圍,請嘗試如下操做:

tig --after="2017-01-01" --before="2018-05-16" -- README.md
複製代碼

再一次,你能夠將其與原始的 Git 版本進行比較:

git log --after="2017-01-01" --before="2018-05-16" -- README.md
複製代碼

瀏覽誰更改了文件

有時你想知道誰對文件進行了更改以及緣由。命令:

tig blame README.md
複製代碼

器本質上是 git blame 的封裝。正如你所指望的那樣,它容許你查看誰是編輯指定行的最後一人,它還容許你查看到引入該行的提交。這有點像 vim 的 vim-fugitive 插件提供的 :Gblame 命令。

瀏覽你的暫存區

若是你像我同樣,你可能會在你的暫存區作了許多修改。你很容易忘記它們。你能夠經過如下方式查看暫存處中的最新項目:

git stash show -p stash@{0}
複製代碼

你能夠經過如下方式找到第二個最新項目:

git stash show -p stash@{1}
複製代碼

以此類推。若是你在須要它們時調用這些命令,那麼你會有比我更清晰的記憶。

與上面的 Git 命令同樣,Tig 能夠經過簡單的調用輕鬆加強你的 Git 輸出:

tig stash
複製代碼

嘗試在有暫存的倉庫中執行此命令。你將可以瀏覽並搜索你的暫存項,快速瀏覽你的那些修改。

瀏覽你的引用

Git ref 是指你提交的東西的哈希值。這包括文件和分支。使用 tig refs 命令能夠瀏覽全部的 ref 並深刻查看特定提交。

tig refs
複製代碼

完成後,使用 q 回到前面的菜單。

瀏覽 git 狀態

若是要查看哪些文件已被暫存,哪些文件未被跟蹤,請使用 tig status,它是 git status 的封裝。

Tig status
Tig status

瀏覽 git grep

你可使用 grep 命令在文本文件中搜索表達式。命令 tig grep 容許你瀏覽 git grep 的輸出。例如:

tig grep -i foo lib/Bar
複製代碼

它會讓你瀏覽 lib/Bar 目錄中以大小寫敏感的方式搜索 foo 的輸出。

經過標準輸入管道輸出給 Tig

若是要將提交 ID 列表傳遞給 Tig,那麼必須使用 --stdin 標誌,以便 tig show 從標準輸入讀取。不然,tig show 會在沒有輸入的狀況下啓動(出現空白屏幕)。

git rev-list --author=olaf HEAD | tig show --stdin
複製代碼

添加自定義綁定

你可使用 rc 文件自定義 Tig。如下是如何根據本身的喜愛添加一些有用的自定義鍵綁定的示例。

在主目錄中建立一個名爲 .tigrc 的文件。在你喜歡的編輯器中打開 ~/.tigrc 並添加:

# 應用選定的暫存內容
bind stash a !?git stash apply %(stash)

# 丟棄選定的暫存內容
bind stash x !?git stash drop %(stash)
複製代碼

如上所述,運行 tig stash 以瀏覽你的暫存。可是,經過這些綁定,你能夠按 a 將暫存中的項目應用到倉庫,並按 x 從暫存中刪除項目。請記住,你要在瀏覽暫存列表時,才能執行這些命令。若是你正在瀏覽暫存,請輸入 q 退出該視圖,而後按 ax 以得到所需效果。

有關更多信息,你能夠閱讀有關 Tig 鍵綁定

總結

我但願這有助於演示 Tig 如何加強你的平常工做流程。Tig 能夠作更強大的事情(好比暫存代碼行),但這超出了這篇介紹性文章的範圍。這裏有足夠的讓你置身於危險的信息,但還有更多值得探索的地方。


via: opensource.com/article/19/…

做者:Olaf Alders 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章
相關標籤/搜索