メモ書きに近いですが、お祭りに乗っておこうということで
モテるGit管理 (gh, ghq, git-cz, lazygit)
この記事を読んだので lazygit を使ってみました。
1週間くらい使ってみて思ったことをいくつか書きます。
なおもともと gh, ghq は使っていて git-cz は .gitmessage をもともとちゃんと書いてたこともあり、試しに使いましたが結局使わなくなりました。
.gitmessage については下記記事などが参考になりそうです。
Git commit と .gitmessage #GitHub - Qiita
GUI 製の Git クライアントを使っていない理由など
いろいろ使ってきたのですが、登録の必要性や更新、git add が誤爆しやすい(これが一番困りものなのですが)などがあり、結局 CLI に戻しました。
また鍵の取り扱いがおかしくなったりなどなど過去にいろいろあり、うんざりしてしまったこともあります。
昨今の環境では GUI での操作が主流となりつつあり、安定もして来ていると思うので、今後私もずっと CUI での操作を続けるかはわかりませんが、今のところは CLI での操作を続けています。
またサーバーでの作業など(直接入ってあれこれすることは減りましたが、ISUCON などで使うことがある)もあるので、CLI での操作を覚えておいて得をしていることも多いです。
昨今だと CodeSpaces でコードや文章を書いてそのままコミット、ということもしているので、そういった意味でも CLI での操作を覚えておくことは大事だと思っています。
というわけで CLI での操作にこだわっているわけですが、いろいろ config などをいじり倒しても手の届きにくいところや、そもそも自分がエイリアス忘れてしまっているなどの問題があり、そういったところを補完してくれるツールを探していました。
インストール
jesseduffield/lazygit: simple terminal UI for git commands
各種環境向けのインストール方法が README に書いてあり、導入は簡単でした。
キーバインド
これに大体乗っています。デフォルトだと Vim 風味のキーバインドといった印象です。
私は Vim 操作もそこそこやっていたので、割とすぐに手に馴染みました。
逆にマウス操作メインの人はちょっと大変かもしれません。
ありがたいことに ?
キーでヘルプが出るので、それを見ながら操作しているとだいたいのことはできると思います。
(よいユーザビリティだなあと思いました)
使い心地
各コミットでの変更を見るのに便利だと感じています。
ファイルの変更がいつ起こったのかを確認する際にいろいろな方法で見ていましたが、 git log
のコマンドを組み合わせたり覚えたりしておくことが必要でした。
毎回その操作を思い出したり、調べたりするのが面倒だったので、それが楽になったのは大きいです。
(単純に時間効率が上がり、生産性が上がった気がします)
またブランチも見やすくなったので、いちいち git branch
でそれっぽいのを探したりする必要がなくなりました。
最近は issue 番号のブランチではなく、機能に関連したブランチ命名にしているので、格段に探しやすくなっているように思います。
diff の表示も個人的には満足しています。 git diff
を適当に行うとどのファイルの変更なのかすぐわからなくなりますが、 lazygit はファイルごとに変更がわかりやすく表示されるので、そういった問題が起きづらいです。
ただショートカットはまだまだ覚えられていないので、もう少し慣れてきたら見方が変わるのかもしれません。
年々作業する時間が減っていることもあり、熟達期間が長くなりそうですが向き合っていこうと思います。
そういう意味で ?
キーですぐにヘルプが出るのはありがたいです。
それと私は tmux で画面を分割して使っているのですが、ディスプレイサイズによっては表示自体が厳しいと感じます。
特にノートパソコンで使うときは画面が小さいので、分割して使うにはやや狭いと感じます。
リポジトリの切り替えなどを高速に行うか、ウィンドウを分割せずに別のターミナルで行うか、といった使い方が必要になるかもしれません。
まとめ
以前は tig を使っていたのですが、直感的に lazygit の方が使いやすいと感じました。
カラーリングもそうですが、操作性なども含めて使いやすいと感じています。
(tig は使いこなせていなかったり、環境の問題で文字化けしたり、などを経験して結局素の git だけ使っていたみたいな事情もありますが…)
昨今は開発速度がより速くなり、git へのコミットやブランチの切り替え、マージが頻繁に発生します。
それを高速に行っていくためにも、ツールになれたほうがいいんだろうなぁと思う日々です。
それを lazygit は叶えてくれそうな気がするので、今は使いこなしてみようと思います。