DUICUO

Tigを使ってGitログを閲覧する方法

[[269791]]

Tigは単なるGitのテキストベースのインターフェースではありません。日々のワークフローをどのように強化できるかをご紹介します。

Gitをバージョン管理システムとして使っているなら、Gitが複雑なツールであることは既にご存知でしょう。Gitは素晴らしいツールですが、Gitリポジトリの閲覧は面倒な場合があります。そこでTigのようなツールが登場しました。

Tig のマニュアルページより:

Tigは、 git (1) 用のncursesベースのテキストベースインターフェースです。主にGitリポジトリのブラウザとして使用されますが、ブロックレベルでのコミット変更のステージングや、様々なGitコマンドの出力ページャとしても機能します。

これは基本的に、Tig がターミナルで実行できるテキストベースのユーザーインターフェースを提供することを意味します。Tig を使うと Git ログを簡単に操作できますが、最後のコミットから前のコミットにジャンプするだけではありません。

Tigのスクリーンショット

このクイックスタートガイドの例の多くは、優れたマニュアルページから直接引用されています。より深く理解するために、ぜひマニュアルページをお読みください。

Tigをインストールする

  • Fedora および RHEL: sudo dnf install tig
  • UbuntuとDebian: sudo apt install tig
  • MacOS: :brew install tig

インストール方法の詳細については、公式のインストール手順を参照してください。

現在のブランチのコミットを参照する

ブランチ内の最新のコミットを表示するには、次のように入力します。

  1. tig

これで完了です。この3文字のコマンドを実行するとブラウザが起動し、現在のブランチのコミットを閲覧できます。これはgit logのラッパーと考えることができます。

この出力を閲覧するには、上下の矢印キーを使ってコミット間を移動します。Enterキーを押すとウィンドウが上下に分割され、右側には選択したコミットの内容が表示されます。左側のコミット履歴を上下に閲覧し続けることができ、右側には変更内容が表示されます。kとk j使って行単位の移動を、 -とスペースバーを使って右側のペインを上下にスクロールします。q q使って右側のペインを終了します。

tig出力の検索も簡単です。/ /前方)または? (後方)を使用して、左側のペインと右側のペインで検索します。

ティグの捜索

提出内容を確認するにはこれで十分です。キーバインドは多数ありますが、 hをクリックすると「ヘルプ」メニューが表示され、ナビゲーションとコマンドオプションを確認できます。また、 / 」と?を使って「ヘルプ」メニュー内を検索することもできます。ヘルプを終了するにはqを使用してください。

Tigヘルプ

単一ファイルの変更を表示する

`Tig` はgit logのラッパーなので、 git logに渡せるのと同じ引数を簡単に受け取ることができます。例えば、単一のファイルのコミット履歴を参照するには、次のように入力します。

  1. tig README . md

ラップされた Git コマンドの出力と比較すると、Tig がどのように出力を強化するかをより明確に理解できます。

  1. git log README . md

生の Git 出力にパッチを含めるには、 -pオプションを追加します。

  1. git log - p README . md

送信範囲を特定の日付範囲に絞り込むには、次の操作を試してください。

  1. tig -- after = "2017-01-01" -- before = "2018-05-16" -- README . md

もう一度、元の Git バージョンと比較してみましょう。

  1. git log -- after = "2017-01-01" -- before = "2018-05-16" -- README . md

ファイルを変更したユーザーを参照する

誰が、なぜファイルを変更したのかを知りたい場合があります。コマンド:

  1. tig blame README . md

基本的に、`git blame` はgit blameのラッパーです。ご想像のとおり、特定の行を最後に編集したユーザーを確認できるだけでなく、その行を追加したコミットも確認​​できます。これは、vim のvim-fugitiveプラグインが提供する ` :Gblameコマンドに似ています。

一時保存領域を参照する

私と同じように、ステージングエリアに多くの変更を加えたことがあるのではないでしょうか。変更内容を忘れてしまうこともよくあるでしょう。ステージングエリアの最新の項目は、以下の方法で確認できます。

  1. git stash show - p stash@ { 0 }

2 番目に新しいプロジェクトは次の方法で見つけることができます。

  1. git stash show - p stash@ { 1 }

などなど。必要な時にこれらのコマンドを呼び出せば、私よりも鮮明な記憶が残るでしょう。

上記の Git コマンドと同様に、Tig は簡単な呼び出しで Git 出力を簡単に強化できます。

  1. tig stash

このコマンドをステージングエリアで実行してみてください。ステージングアイテムを閲覧・検索し、変更内容を素早く確認できます。

引用文献を閲覧する

Gitのrefとは、コミットした内容のハッシュ値です。ファイルやブランチも含まれます。`tig tig refsコマンドを使うと、すべてのrefを参照し、特定のコミットをより深く掘り下げることができます。

  1. tig refs

終了したら、 qを使用して前のメニューに戻ります。

Gitのステータスを表示する

どのファイルがステージングされ、どのファイルが追跡されていないかを確認するには、 git statusラッパーであるtig statusを使用します。

ティグステータス

git grep を閲覧する

grepコマンドを使ってテキストファイル内の表現を検索できます。`tig tig grepコマンドを使うと、 git grepの出力を参照できます。例えば、以下のようになります。

  1. tig grep - i foo lib / Bar

これによりlib/Barディレクトリを参照して、大文字と小文字を区別してfooの出力を検索できるようになります。

標準入力パイプ経由でTigに出力

Tig にコミット ID のリストを渡す場合は、 --stdinフラグを使用してtig show標準入力から読み取るようにする必要があります。そうしないと、 tig show入力がない状態で起動し、空白の画面が表示されます。

  1. git rev - list -- author = olaf HEAD | tig show -- stdin

カスタムバインディングを追加する

Tig は rc ファイルを使ってカスタマイズできます。ここでは、お好みに合わせて便利なカスタムキーバインディングを追加する方法の例をいくつか紹介します。

ホームディレクトリに.tigrcというファイルを作成します。お好みのエディタで~/.tigrcを開き、以下の行を追加します。

  1. # 应用选定的暂存内容
  2. bind stash a !? git stash apply %( stash )
  3. # 丢弃选定的暂存内容
  4. bind stash x !? git stash drop %( stash )

前述の通り、ステージングエリアを参照するにはtig stashを実行します。ただし、これらのバインディングを使用すると、 aを押すとステージングエリアのアイテムをリポジトリに適用し、 xを押すとステージングエリアからアイテムを削除できます。これらのコマンドはステージングリストを参照している場合にのみ実行できることに注意してください。ステージングアイテムを参照している場合は、 qと入力してビューを終了し、 aまたはxを押すことで目的の効果が得られます。

詳細については、Tig キー バインディングについてお読みください。

要約

Tig が日々のワークフローをいかに効率化できるか、ご理解いただけたかと思います。Tig は他にも多くの機能(コード行のスタッシュなど)を備えていますが、この入門記事ではその範囲を超えています。この記事には危険な状況に陥るほどの情報が含まれていますが、さらに探求すべき点はたくさんあります。