これはTig、gitのためのncursesbベースのテキストモード インタフェース、のマニュアルです。TigはGitリポジトリ内の変更にざっと目を通し、更に様々なGitコマンドの出力のページャーとして振る舞うことができます。ページャーとして使われた場合、stdinからの入力を表示し、それをカラー化するでしょう。

リポジトリにざっと目を通す場合に、Tigはコミットログの要約およびログメッセージ、diffstat、diff のような様々なviewをユーザに提示するために基礎となっているGitコマンドを使用します。

目次

1. 呼び方の慣習

1.1. ページモード

stdionがパイプの場合、全てのログあるいはdiffオプションは無視され、ページャービューはstdinからロードされたデータを開くでしょう。ページャーモードは様々なGitコマンドからの出力をカラー化するために使うことができます。

以下は、git-show(1)の出力をカラー化する方法の例です:

$ git show | tig

1.2. Git コマンド オプション

コマンドラインで指定された全てのGitコマンドオプションは指定されたコマンドに渡され、シェルに渡される前に全てシェルクォートされるでしょう。

注意
メインビューのためのオプションを指定した場合は、このオプションは自動的にメインビューに期待される形式に設定されるため、--pretty オプションを使うべきではありません。

コミットを表示し、作成者とコミッター情報の両方を表示する方法の例:

$ tig show --pretty=fuller

Gitコマンドによってサポートsれるリビジョンオプションの説明については、リビジョンの指定の章を見てください。特定のGitコマンドオプションについての詳細は、該当のコマンドのmanページを参照してください。

2. ビュワー

The display consists of a status window on the last line of the screen and one or more views. The default is to only show one view at a time but it is possible to split both the main and log view to also show the commit diff.

現在の行が以下のようなログビューの中でEnterを押すと:

commit 4d55caff4cc89335192f3e566004b4ceef572521

ビューが分割され、ログビューが上のウィンドウにdiffビューが下のウィンドウに表示されるでしょう。Tabを押すことで2つのビューを切り替えることができます。ログビューを再び最小化するには、単にlを押します。

2.1. ビュー

リポジトリの様々なビューがあります。各ビューは、外部コマンド、ほとんどは git log, git diff あるいはgit show からの出力に基づいています。

メインビュー

デフォルトのビューで、選択されたリビションのリスト内の各コミットの概要の1行を表示します。概要には作成日、作成者、ログメッセージの1行目が含まれます。更に、タグのようなリポジトリのリファレンスが表示されるでしょう。

ログビュー

ログメッセージとdiffstat全体を表示するリビジョンログのよりリッチなビューを表示します。

diffビュー

Shows either the diff of the current working tree, that is, what has changed since the last commit, or the commit diff complete with log message, diffstat and diff.

ツリービュー

Lists directory trees associated with the current revision allowing subdirectories to be descended or ascended and file blobs to be viewed.

blobビュー

ファイルの内容あるいはファイル名に関係するデータの"blob"を表示します。

blameビュー

コミットによって注釈が付けられたか非難されたファイルの内容を表示します。

refビュー

リポジトリ内のブランチ、リモートおよびタグを表示します。

状態ビュー

ワーキングツリー内のファイルの状態を表示し、追跡されていないファイルの追加と同様に変更をステージ/アンステージされるようにします。

ステージビュー

トラックされているステージあるいはアンステージの変更のdiff、あるいはトラックされていないファイルの内容を表示します。

stashビュー

リポジトリ内のstashのリストを表示します。

grepビュー

ファイルのリストと検索パターンに一致する全ての行を表示します。

ページャービュー

stdionからの入力と、内部プロンプト内に入力されたGitコマンドからの出力の両方を表示するために使われます。

ヘルプビュー

キーバインディングのクイックリファレンスを表示します

2.2. 走査状態とユーザ定義コマンド

ビュワーは、どれがヘッドかと現在見ているビューのコミットIDを追跡します。The commit ID will follow the cursor line and change every time you highlight a different commit. コミットIDが変更された場合は、diffビューを再び開く時はいつもリロードされます。The head ID is used when opening the main and log view to indicate from what revision to show history.

Tigによって利用あるいは提供されるいくつかのコマンドは設定することができます。This goes for some of the environment variables as well as the external commands. これらのユーザ定義されたコマンドは、以下の変数の1つを使って現在のブラウジング状態を参照する引数を使うことができます。

表 1ブラウジング状態変数

%(head)

現在見られている head ID。デフォルトはHEAD

%(commit)

現在選択されているコミットID。

%(blob)

現在選択されているblob ID。

%(branch)

現在選択されているブランチ名。

%(stash)

現在選択されているstash名。

%(directory)

ツリービュー内の現在のディレクトリパス; ルートディレクトリの場合は空。

%(file)

現在選択されているファイル。

%(lineno)

現在選択されている行数。デフォルトは0。

%(ref)

非難されているリファレンスあ、るいは未定義の場合はHEAD。

%(revargs)

コマンドライン上で渡されたリビジョン引数。

%(fileargs)

コマンドライン上で渡されたファイル引数。

%(cmdlineargs)

コマンドライン上で渡された他の全ての引数。

%(diffargs)

Options from diff-options or TIG_DIFF_OPTS used used by the diff view.

%(blameargs)

blameビューで使われるblame-optionsからのオプション。

%(logargs)

ログビューで使われるlog-options からのオプション。

%(mainargs)

メインビューで使われるmain-optionsからのオプション。

%(prompt)

引数の値のためのプロンプト。

ユーザ定義コマンドの例:

  • 最後のコミットを修正することができます:

    bind generic + !git commit --amend
  • クリップボードにコミットIDをコピー:

    bind generic 9 !@sh -c "echo -n %(commit) | xclip -selection c"
  • レビュー中に使われる現在のコミットのためのノートの追加/編集:

    bind generic T !git notes edit %(commit)
  • Enter Git’s interactive add for fine-grained staging of file content:

    bind generic I !git add -i %(file)
  • 選択されたブランチの一番上で現在のブランチをRebase:

    bind refs 3 !git rebase -i %(branch)

2.3. タイトル ウィンドウ

各ビューは、ビューの名前、利用可能であれば現在のコミットID、そしてどこにビューが配置されているかを示すタイトルウィンドウを持ちます:

[main] c622eefaa485995320bc743431bae0d497b1d875 - commit 1 of 61 (1%)

デフォルトでは、現在のビューのタイトルはボールドフォントを使ってハイライトされます。長くロードしているビュー(3秒以上掛かっている)については、ローディングが開始されてからの時間が追加されるでしょう:

[main] 77d9e40fbcea3238015aea403e06f61542df9a31 - commit 1 of 779 (0%) 5s

3. 環境変数

Several options related to the interface with Git can be configured via environment options.

3.1. 設定ファイル

開始時に、Tigはまずシステム全体の設定ファイルを読みます(デフォルトでは{sysconfdir}/tigrc )そして、ユーザ設定ファイル (~/.tigrc by default)を読み進めます。それらのどちらかのファイルのパスは以下の環境変数を使って上書きすることができます:

TIGRC_USER

ユーザ設定ファイルのパス

TIGRC_SYSTEM

システム全体の設定ファイル。

3.2. リポジトリ リファレンス

tagおよびブランチヘッドによって参照されるコミットは[ and ]によって囲まれている参照名によってマークされるでしょう:

2006-03-26 19:42 Petr Baudis         | [cogito-0.17.1] Cogito 0.17.1

どのブランチが表示されるかを制限したい場合は、master という名前のブランチか、feature/ プリフィックスで始まるブランチのみを表示するように伝えます。それは以下の変数を設定することで行うことができます:

$ TIG_LS_REMOTE="git ls-remote . master feature/*" tig

あるいは、環境変数の中に購入的に設定します。

TIG_LS_REMOTE

全てのリポジトリリファレンスを扱うためのコマンドを設定します。コマンドはgit-ls-remote(1)と同じ形式のデータを出力しなければなりません。デフォルトは:

git ls-remote .

3.3. Diff オプション

diffがどのように表示されるかをdiffビューを使って変更することができます。例えば、コミットおよび作成日付を相対的な日付として持ちたい場合は、以下を使います:

$ TIG_DIFF_OPTS="--relative-date" tig

あるいは、環境変数の中に購入的に設定します。

4. デフォルトのキーバインド

以下はデフォルトのキーバインドを示します。

4.1. ビューの切り替え

キー アクション

m

メインビューへの切り替え。

d

diffビューへの切り替え。

l

ログビューへの切り替え。

p

ページャービューへの切り替え。

t

(ディレクトリ)ツリービューへの切り替え。

f

(ファイル)blobビューへの切り替え。

g

grepビューへの切り替え。

b

blameビューへの切り替え。

r

refsビューへの切り替え。

y

stashビューへの切り替え。

h

ヘルプビューへの切り替え

s

状態ビューへの切り替え

c

ステージビューへの切り替え

4.2. ビューの操作

キー アクション

q

ビューを閉じます。もし複数のビューが開かれている場合は、ビュースタックの中の以前のビューへ戻ります。最後に開かれているビューであれば、終了します。全てのビューを同時に終了するにはQを使います。

Enter

このキーは現在どのビューにいるかに依存する"コンテキストに敏感"です。ログビューのコミット行あるいはメインビューにいる場合は、ビューを分割しコミットdiffを表示します。 diffビューでエンターを押すと、単純にビューを1行下にスクロールします。

Tab

次のビューに切り替え。

R

現在のビューを再読込みしリフレッシュします。

O

現在のビューをディスプレイ全体に最大化します。

Up

このキーは"コンテキストに敏感”で、カーソルを1行上に移動するでしょう。 しかし、もしメインビュー(分割あるいはスクリーン全体)Hからdiffビューを開いている場合は、メインビュー内の以前のコミットを示すようにカーソルを変更し、それを表示するためにdiffビューを更新します。

Down

Upに似ていますが、下に移動します。

,

親に移動します。ツリービューでは、これは親ディレクトリに切り替わることを意味します。blameビューでは、親のコミットのためにblameをロードするでしょう。マージのために親が問い合わされます。

4.3. ビュー固有のアクション

キー アクション

u

ファイルの状態を更新します。状態ビューでは、これにより次のコミットのために追跡されてないファイルあるいはステージの変更を追加することができます(git-add <ファイル名>に似ています)。In the stage view, when pressing this on a diff chunk line stages only that chunk for next commit, when not on a diff chunk line all changes in the displayed diff are staged.

M

git-mergetool(1)を起動することで、マージされていないファイルを解決します。これを正しく動作するためには、好みのマージツールの初期設定が必要かも知れないことに注意してください。git-mergetool(1)のmanpageを見てください。

!

ステージされていない変更を持つファイルをチェックアウトします。これは最後のコミットでの内容を持つようにファイルをリセットするでしょう。

1

1行のdiffをステージします。

@

ステージビューの次のチャンクに移動します。

]

diffの内容を増やします。

[

diffの内容を減らします。

4.4. カーソル操作

キー アクション

k

カーソルを一行上に移動します。

j

カーソルを一行下に移動します。

PgUp,-,a

カーソルを1ページ上に移動します。

PgDown, Space

カーソルを1ページ下に移動します。

End

最後の行にジャンプします。

Home

最初の行にジャンプします。

4.5. スクロール

キー アクション

Insert

ビューを1行上にスクロールします。

削除

ビューを1行下にスクロールします。

ScrBack

ビューを1ページ上にスクロールします。

ScrFwd

ビューを1ページ下にスクロールします。

Left

ビューを1カラム左にスクロールします。

Right

ビューを1カラム右にスクロールします。

|

ビューを最初のカラムにスクロールします。

4.6. 検索

キー アクション

/

ビューを検索します。使用する検索正規表現を入力するためのプロンプトを開きます。

?

ビュー内で逆方向に検索します。正規表現のためにプロンプトもします。

n

現在の検索正規表現の次の一致を探します。

N

現在の検索正規表現の前の一致を探します。

4.7. その他

キー アクション

Q

終了します。

<C-L>

スクリーンを再描画します。

z

全てのバックグラウンドの読み込みを停止します。これは長い履歴を持つリポジトリ内でリビジョンログを制限せずにTigを使う場合に便利かも知れません。

v

バージョンを表示します。

o

オプションメニューを開きます。

#

行番号のon/offをトグルします。

D

日付表示の on/off/short/relative/local をトグルします。

A

作者表示の on/off/abbreviated/email/email user name をトグルします。

G

リビジョングラフの表示の on/off をトグルします。

~

(行)グラフィックモードをトグルします。

F

リファレンス表示の on/off (タグとブランチ名)をトグルします。

W

diffのための空白無視の on/off をトグルします。

X

コミットID表示の on/off をトグルします。

%

Toggle file filtering in order to see the full diff instead of only the diff concerning the currently selected file.

$

コミットタイトルのオーバーフローのハイライトをトグルします。

:

プロンプトを開く。これによりどのコマンドを実行するかを指定することができます。

e

エディタ内でファイルを開きます。

4.8. プロンプト

キー アクション

:<number>

特定の行番号にジャンプします。例えば :80.

:<sha>

特定のコミットにジャンプします。例えば :2f12bcc

:<x>

対応するキーバインディングを実行します。例えば:q

:!<command>

ページャー内でシステムコマンドを実行します。例えば :!git log -p

:<action>

Tigコマンドを実行します。例えば :edit

:save-display <file>

現在の表示を<file>に保存します。

:save-options <file>

現在のオプションを<file>に保存します。

:script <file>

<file>からコマンドを実行します。

:exec <flags><args…>

<args> を使って<flags>で定義されたユーザ定義のコマンドオプションフラグを持つコマンドを実行します。

4.9. 外部コマンド

もっとカスタムが必要であれば、外部コマンドがスクリプトあるいはプログラムを簡単に実行する方法を提供します。それらは現在のコミットIDのような現在のブラウジング状態からのキーおよびユーザ情報にバインドされます。Tig には以下の組み込みの外部コマンドが付いています。

Keymap キー アクション

main

C

git cherry-pick %(commit)

状態

C

git commit

generic

G

git gc

5. リビジョン仕様

このセクションはどのリビジョンを表示するか、あるいはそうでなければどのリビジョンのビューを制限するかを指定する様々な方法を説明します。Tig does not itself parse the described revision options so refer to the relevant Git man pages for further information. Relevant man pages besides git-log(1) are git-diff(1) and git-rev-list(1).

この章で説明されるオプションを使うことで、Gitとのやり取りを調整することができます。 例えば、この章の diff optionsで説明される環境変数で設定します。

5.1. パス名による制限

If you are interested only in those revisions that made changes to a specific file (or even several files) list the files like this:

$ tig Makefile README

タグ名のようなTigのサブコマンドあるいはリポジトリリファレンスを使って曖昧さを避けるために、"--"を使って他のGitオプションからファイル名を切り離すようにしてください。つまり、statusという名前のファイルを持つ場合、それはstatus サブコマンドと衝突するでしょう。したがって、以下を使う必要があるでしょう:

$ tig -- status

5.2. 日付あるいは数値による制限

Gitとのやり取りをスピードアップするために、ログおよびメインビューの両方を表示するコミットの量を制限することができます。例えば、--since=1.month を使って日付で制限、あるいは-n400を使ってコミット数で制限のどちらかです。

2つの日付の間で起きた変更だけに興味があれば、以下を使うことができます:

$ tig --after="May 5th" --before="2006-05-16 15:44"
注意
空白を含む日付をクォートしなければならないことを避けたい場合は、代わりに"."を使うことができます。例えば、--after=May.5th

5.3. コミット範囲による制限

別のやり方として、コミットは、"tag-1.0tag-2.0の間の全てのコミット"のように特定の範囲に制限することができます。例えば:

$ tig tag-1.0..tag-2.0

このコミットの制限をする方法はリモートブランチへプッシュされていないコミットをブラウズするだけではつまらないものです。originをupstreamのリモートブランチと仮定して、以下を使います:

$ tig origin..HEAD

リモートブランチにプッシュされるだろうものをリスト化するでしょう。最後のHEAD は暗黙的なため、任意に省略することができます。

5.4. 到達可能性による制限

Gitは範囲指定子"tag-1.0..tag-2.0"を"tag-1.0からではなくtag-2.0から届く全てのコミット"と解釈します。Where reachability refers to what commits are ancestors (or part of the history) of the branch or tagged revision in question.

この方法でどのコミットをプレビューするかを指定するのが好みであれば、以下を使ってください:

$ tig tag-2.0 ^tag-1.0

^ を否定演算子として捉えることができます。Using this alternate syntax, it is possible to further prune commits by specifying multiple branch cut offs.

5.5. リビション仕様の結合

Revision options can to some degree be combined, which makes it possible to say "show at most 20 commits from within the last month that changed files under the Documentation/ directory."

$ tig --since=1.month -n20 -- Documentation/

5.6. 全てのリポジトリリファレンスの検証

幾つかの場合において、リポジトリ内の全てのリファレンスに渡る変更をクエリすることは便利です。例として"このリポジトリ内の開発のいずれかの行が過去1週間以内に特定のファイルを変更したか"を尋ねます。以下を使ってこれを行うことができます:

$ tig --all --since=1.week -- Makefile

6. 更なる情報

新しいリリースについての情報およびバグと機能の要求を報告する方法については、Tigの ホームページ あるいは メインの Git リポジトリ を尋ねてください。

7. コピーライト

Copyright (c) 2006-2014 Jonas Fonseca <jonas.fonseca@gmail.com>

このプログラムはフリーソフトウェアです; Free Sowftware Foundationによって公開されたGNU General Public Licenseの元に、それの再配布 および/あるいは 修正をすることができます; Licenseバージョン2 あるいは(選択肢として)どの後のバージョンのどちらかです。

8. 以下も見てください

Manpages:


TOP
inserted by FC2 system