tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【git】tigでgit操作を便利にするメモ - logを可視化したりstatusやdiffも簡単に!

はじめに

gitやgithubで開発してる場合はgitコマンドもよく使いますよね。
そんな時、簡単にlogを可視化したり、簡単にいまのstatusを見たり、簡単にdiffを見たいときに使えるtigコマンドについてのメモです

アジェンダ

  1. tigとは
  2. tigのインストール
  3. tigでできること
  4. tig使ってみる
  5. よく使うtigコマンドまとめ

1. tigとは

引用ですが、こんな感じ。

Gitのためのテキストユーザインタフェースです。
Gitリポジトリ内の変更内容をVimライクな操作で高速に閲覧することができます。
参考: https://qiita.com/tyabe/items/4ce9918b6dd6971d60e4

git操作自体をvim上で行う感じ、というと雰囲気伝わるでしょうか? f:id:tweeeety:20171011231558p:plain

2. tigのインストール

mac x brewな環境ならこれだけです

$ brew install tig

3. tigでできること例

できるコトはたくさんありますが一例と、こんな感じに見えるよというのを先に記載しておきます。

一例

  • git logをいい感じに可視化
  • git statusをいい感じに可視化
  • git statusをいい感じに可視化した上でそのままステージ(git add)/アンステージできたり
  • git statusをいい感じに可視化した上でそのままdiffを見たり

4. tig使ってみる

一例をそのまんま使ってみます。

git logをいい感じに可視化

ターミナル上でgit管理化のdirに移動します。
そこで tig と打つとgit logをいい感じに表示してくれます。

f:id:tweeeety:20171011231239p:plain

ちなみに、これをmain viewと呼ぶらしいです。
この画面がすべての起点となります。

コマンド

基本的なコマンドです。

キー 挙動
j, k カーソルの上下移動
左右の矢印キー 左右にスクロール
enter サブビュー(詳細)表示
Ctrl+D/U ページ単位で上下移動
q 現在のビューを閉じる
Q tigを終了
/ 画面内検索

git statusをいい感じに可視化

statusもいい感じに可視化してくれます。
コマンドラインからはtig statusと打てばstatusが表示され、
main view を開いている状態であれば単にsと打つだけです。

f:id:tweeeety:20171011231256p:plain

それぞれの意味はgitに慣れていれば、見てわかると思いますが念のため記載しておきます。

項目

|項目|説明| |Changes to be committed:|git add したやつ(コミット対象)| |Changed but not updated:|変更があったコミット対象外)| |Untracked files:|新しく作成されたやつ(コミット対象外)|

git statusをいい感じに可視化した上でそのままステージ(git add)/アンステージできたり

また、このstatus画面では j,kで移動できたりします。
移動しながらuでそのままステージ(git add)できたりします。

statusビュー上でgit add前

f:id:tweeeety:20171011231346p:plain

statusビュー上でgit add後

f:id:tweeeety:20171011231356p:plain

コマンド
キー操作 説明
j, k カーソル移動
u ハンク単位でステージ/アンステージ

git statusをいい感じに可視化した上でそのままdiffを見たり

また、status画面でj,kで移動しながら見たいファイル上でEnterを押すとdiffも開けます。
これはdiffビューというらしいです。

mainビュー上からdiffビュー開く

f:id:tweeeety:20171011231433p:plain

statusビュー上からdiffビュー開く

f:id:tweeeety:20171011231445p:plain

コマンド

diffビュー上でも移動やらいろいろできますが、コマンドはこんな感じです。

キー操作 説明
j, k カーソル移動
ctrl-u, ctrl-d ページ単位で上下移動
u ハンク単位でステージ/アンステージ
1 行単位でステージ/アンステージ
shift-j, shift-k ファイル選択(左側のビュー)を上下移動
q diffビューを閉じる

参考サイト

おわり

tig便利!とまえまえから思ってたけど未だに意外とそのままgit statusと打ってしまいますね\(^o^)/