git操作自体はgit cuiコマンドで行っているが、差分やtreeを見るためにSource Treeを使っている。
いちいちwindowを切り替えるのもめんどくさくなってきたので、CUI環境で完結出来るならそうしたいと思い検討中。
tigを使うとかなりの部分がGUIクライアントのノリで作業できる。
現在GUIで行っている作業をtigやコマンドでどのように対応するかを検討する。
前準備
brewとかaptとかでtigをインストールする。
tigのmain viewにコミットIDとauthorが表示されていると便利なので設定する
参考)
やけに丁寧なtigの設定ガイド(表示制御編) - Qiita
~/.tigrc
# main viewの左端にコミットIDを表示する set main-view = id date author commit-title:graph=yes,refs=yes # デフォルト # set main-view = date author commit-title:graph=yes,refs=yes
コミットTreeを見てブランチの位置関係の確認など
普通にtigコマンドを打てばOK
変更完了時、差分を確認して適宜stagingへaddしてコミット
tigで出来る。
tigのmain viewで[sキー]を押すと表示されるviewにて、uキーでステージングへ。
ハンクごとにaddも可能
[1キー]で1行ごとのaddも可能
[Cキー]でcommitを打てる
問題があるコードがあった場合に、どこでその変更が入ったのか?どういう理由で入ったのかを確認する
tig [ファイルパス]
でそのファイルの変更履歴だけを辿れる。
問題の変更が入ったcommitを見つけて変更意図を読む。
コミットIDがわかるので、一緒に変更された他ファイルの内容も見たければtigコマンドを打ち直して、
/[コミットID]
で検索してそのコミットを確認する。
特定のコミットとの差分を比較したい場合
比較元のブランチやコミットにチェックアウトして、
git diff [比較先コミットID]
で全部の変更の差分確認できる。
git diff [比較先コミットID] --name-only
でファイル名だけ確認できる。
上記コマンドで怪しいファイルを見つけたら、
git diff [比較先コミットID] ファイル名
でそのファイルだけ差分確認できる。
指定した複数のブランチのみのtree表示を見たい
branch1とbranch2のみのtree表示が見たい場合がある。(全部のブランチが表示されると見づらいため)
tig branch1 branch2
で確認できる。