64
Help us understand the problem. What are the problem?
Organization

「どうせgit操作するならカッコいいツールでやりたいなー」→ lazygitはいかがですか?

どうもこんにちは、パンカメです。

筆者は普段Web開発に携わっています。

最近は、「どうせ開発するなら、自分のテンションが上がるツールを使って開発したいなー」と思っていて改めてVim入門したりdotfiles管理をもっと便利にしたりなどやっています。

その中でターミナル上でgit操作を快適に行うことのできるlazygitというツールを知り、こんなカッコいいツールがあるんだと衝撃を受けました!

普段の仕事ではまだVSCodeとtigを使ってgit操作を行っていますが、本格的に導入するために操作まわりを整理してみたのでぜひ覗いてみてください。

┌┬(゜<――@ 「lazygitかっこいいので広めたい」

lazygitとは

jesseduffield/lazygit: simple terminal UI for git commands

lazygitをインストールすれば、ターミナル上でlazygitと打つだけで起動できて、ターミナルUIでgit操作ができるツールです。(qで終了できます)。
マウス操作も反応するのでパネル間の移動やコミットの選択をマウスで選択したりもできます。
基本的にはコマンド操作で全ての操作が完結するのがlazygitのいい所ですが、慣れないうちは便利ですね。

(このテキストベースで黒い画面で操作する感じがかっこいい…)

lagygit_1.gif

インストール方法

インストールはとても簡単です。

公式のインストール方法を参考にインストールします。

筆者の場合は、WSLのUbuntuにlinuxbrew(homebrew)を入れているので、brewコマンドを使ってインストールします。

brew install lazygit

lazygitの画面の説明

lazygitでは最初からいい感じにエリア(パネル)ごとにできることが決まっていて、やりたいことに応じてパネルを移動してコマンドでgit操作を行います。

パネル毎の領域がわかりやすいように透ける白背景で分かりやすく加工しています。

Status

今いるリポジトリとブランチ名を確認できます。

status.png

Files

VSCodeのgit画面と同じく変更したファイルの一覧が表示され、addやcommit等を行うことができます。

files.png

Local Branches

ローカルブランチの一覧が見れます。

ブランチの作成・削除・切替などを行う事ができます。

local_branches.png

Commits

今いるブランチのコミット履歴が見れます。

コミットハッシュ値が黄色の場合はすでにリモートにpushしたコミットで、赤色の場合はローカルでのみコミットしたものになります。リモートにpushすると黄色になります。

commits.png

Stash

Stashの一覧が見れます。

applyやpopなどの操作を行うことができます。

stash.png

Command Log

lazygitでコマンド操作した場合に実際はgitコマンドが実行されており、そのコマンドの履歴を確認することができます。

command_log.png

操作方法

簡単な操作方法(これだけ覚えればとりあえずは使える!)

lazygitはとりあえず、移動方法とヘルプが見られれば最低限すぐに使えるようになるので、「lazygitカッコいい!今すぐに触ってみたい」という人のために移動方法とヘルプの見方だけ抑えておきましょう。

移動方法

コマンド 説明
h,l or Tab,S-Tab パネル移動(進む/戻る)
j,k パネル内移動(上/下)
@Focus command log Command Logへ移動

※他のパネルと違いCommand Logへの移動は@Focus command logで移動するようです(戻る場合は、ESCで戻れます)。

ヘルプの見方

操作がわからない場合はxキーを押せばそのパネルでできる操作コマンドの一覧を表示することができとても便利です。

例として、Statusパネルでxを押してみましょう(閉じる場合はESCで閉じます)。

次のようなヘルプウィンドウがフローティングで表示されます。

上部のコマンドがStatusパネルでのみ使えるコマンドで、下部のコマンドが全パネル共通のコマンドです。他のパネルでも同じような感じで表示されます。
一行の空行が区切りになっているので見方さえ覚えてしまえば簡単ですね。

help.png

基本的なgit操作編

rebaseやreflogなど応用的な操作もできるのですが、まだ使いこなせていないので基本的なgit操作について紹介していきます。

checkout -bする

ここでは「develop」というローカルブランチを作成していきます。

  1. 「Local Branches」パネルに移動
  2. nを押して、ブランチ名を入力してEnterで作成

lagygit_checkout_b.gif

checkoutする

ここでは「develop」ブランチから「main」ブランチに移動します。

  1. 「Local Branches」パネルに移動
  2. 切り替えたいブランチに移動して、SPC

lagygit_checkout.gif

branch -dする

ここではローカルの「develop」ブランチを削除してみます。

  1. 「Local Branches」パネルに移動
  2. 削除したいブランチに移動して、dを押してEnterで削除

lagygit_branch_d.gif

pullする

リモートの「main」ブランチに他の人の変更が入ったと見立てて、「main」ブランチをpullします。

  1. 「Local Branches」パネルに移動
  2. pullしたいブランチに移動して、p

lagygit_pull.gif

addする

ファイル単位でadd
  1. 「Files」パネルに移動
  2. addしたいファイルに移動して、SPC ※もう一度、SPCでファイルのadd取り消し

lagygit_add_1.gif

ファイル内の行ごと(ハンク)でadd

行ごとにadd(ハンク)するのが簡単にできます。
vimと同じようにvでビジュアルモードにして複数行をハンクしたりもできるので、直感的にそして簡単に操作できます。

  1. 「Files」パネルに移動
  2. ハンクしたいファイルに移動してEnterしてUnstaged Changesに移動
  3. 一行ずつハンクする場合は、SPCvでビジュアルモードにして行選択してSPCすると複数行ハンクできます。
  4. Unstaged Changes/Staged ChangesはTABで移動。Staged Changesから取り消したい場合も同じくSPCで取り消し。
  5. 「Files」パネルに戻るにはESC

lagygit_add_2.gif

全ファイルをadd

  1. 「Files」パネルに移動
  2. aで全てのファイルをadd ※もう一度aで全てのファイルのadd取り消し

lagygit_add_3.gif

commitする

  1. 「Files」パネルに移動
  2. cでコミットメッセージを入力してEnterしてコミット

lagygit_commit.gif

pushする

ローカルでのみコミットしている場合は「Commits」パネルのコミットハッシュ値が赤く表示されます。
このコミットをリモートブランチにpushします。
pushが完了するとコミットハッシュ値が黄色くなります。

  1. Pでリモートへpush

lagygit_push.gif

stashする

  1. 「Files」パネルに移動
  2. sでstash名を入力してstash
  3. 戻すときは「Stash」パネルに移動
  4. SPCでapply、gでpop、dでdropできます。ここでは、gでpopしています。

lagygit_stash.gif

gitコマンドを直接実行する

lazygit上で用意されていないgit操作を行いたい場合は、:でカスタムコマンドを実行することができます。

ここでは、ローカルで色々操作したけど、とりあえずリモートのブランチの状態に戻したいときに使うコマンドgit reset --hard origin/mainを実行してみます。

lagygit_custom_command.gif

まとめ

lazygitいかがだったでしょうか。
意外に操作方法を見てみると、簡単にできそうという印象があるのじゃないでしょうか。

筆者も最初は難しいかなーと思っていたのですが、パネル毎の役割とxを押せばとりあえずなんとかなるというのが分かってからはすごい使いやすいなーと思っています。

最初は筆者のように練習用のリポジトリを作って、そこで操作を色々試すのがおすすめです。

lazygitは操作した内容の実際のgitコマンドも履歴を見ればわかるので、知らないgitコマンドの意味を調べたりもできて結構gitの勉強にもなります!

今はtigをメインで使っているのですが、何か特別な設定をしなくてもたくさんのgit操作を行うことができるlazygitは慣れると便利です。

あと、やっぱりカッコいいです!ツールはどうせなら自分のテンションがあがるものを使っていきましょう!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
64
Help us understand the problem. What are the problem?