menu
書いてる野郎
orebike@gmail.com
$ tig --version
$ tig --all
基本的なカーソル操作はvimと同様
状況 | 機能 | 操作 | memo |
---|---|---|---|
共通 | |||
main-view | 起動直後。コミットログが順番に並ぶ画面。logのダイジェスト版。操作の起点 | ||
diff-view へ移動 | カーソルをリビジョンに当てて d | 対象はカーソルのリビジョンとその前との変化 | |
tree-view へ移動 | カーソルをリビジョンに当てて t | カーソルのリビジョン時点の構造 | |
status-view へ移動 | カーソルをリビジョンに当てて S | ||
branch-view へ移動 | r | ||
Quit | q | 終了 | |
diff-view | コミットによりどの部分がどう変化したのかを見る | ||
checkout | ! | 対象の hunk をコミット時点へ戻す | |
split hunk | \ | 対象の hunk を分割する | |
tree-view | 対象のリビジョンでのファイルディレクトリ構造表示 | ||
log-view | いわゆるlog | ||
blame-view | |||
branch-view | ブランチの表示。一番上が現在のブランチ | ||
Create new branch and switch | N | 独自キーバインドで設定 | |
Checkout branch | C | カーソル上のブランチへ移動 | |
status-view | ステージング管理。なんだかんだでメインで使う | ||
commit | C | ステージング管理。なんだかんだでメイン | |
stage/unstage toggle | カーソルをファイルに当ててu | ステージング管理 | |
checkout | カーソルをファイルに当てて ! | 対象のファイルを元に戻す。反対コミットではなくて単純に対象のワークのファイルをコミット時点へ戻す | |
back | q | 一つ前の画面に戻る | |
Go to diff-view | enter | 対象のファイルをdiff-view で見る | |
Quick Reference | 簡単なヘルプ |
※ver 1.0 には Stash-view が無い
自分はほとんど Status-view からの stage からの commit の操作に使っている。 簡単にファイルを選んで stage できるとわかってからは spike 系のブランチをあまり切らなくなった。 とりあえず作業用のブランチだけ作っておいて適当に開発して、区切りがついたら対象だけ stage して(この際に diff-view ですぐ確認できるから安心) commit PR という流れ。残りは stash して次の作業ブランチに持って行って同様に操作。
あとは log view で master から作業ブランチがどれぐらい乖離しているかを見るぐらい。
.tigrc
ファイルを書くことでイロイロ設定することができる。
※設定ファイルのフォーマットがバージョンによって大きく違っていて、使えない場合もある
# 日付表示を白 color date white default # G 操作で最終行へ移動。デフォルトでは git gc に割り当てられているので誤操作防止 bind generic G move-last-line # リビジョン間移動 bind main C !?git checkout %(commit) # ブランチ間移動 bind branch C !?git checkout %(branch) # 新規ブランチからの移動 bind branch N !git checkout -b %(prompt) %(branch)
キーバインドの設定は
bind view_name key function
のように設定するようだ。
move-last-line
のように tig がはじめから用意してくれている動作はそのまま書けばよい。
コマンドを打ちたい場合は !
に続いて直接コマンドを書く。
?
をつけると操作時に確認ダイアログが出るようになる。
↑のような変数も使うことができる。大体がカーソルにあたっている何かの情報をとってくる。
%(prompt) | 実行時に入力を受け付けてその内容を入れることができる |
set ignore-space = at-eol
このように設定すると改行コードを変更したファイルは status-view で変更があると検出されるが、変更箇所を diff で見ても無視して表示されない
起動時に・・・というエラーが出る。tigは commit が一個もなかったら出るっぽい。
原因不明。事象としてはある日突然おこって、ある日突然回復したりするらしい。
自力で回復するには tigrc にこれを書き込む
set status-show-untracked-files = yes
MSYS2 上の ver 2.4.1
set main-view=id date:display=custom,format="%y%m%d %H%M",local=yes author:abbreviated commit-title:graph=v2,refs=yes set line-graphics = utf-8
main-view(起動後のコミットログ画面)での表示を id 表示を付加して、時刻表示をコンパクトにしている