magitという拡張があるのは知っていたしインストールはしていたけれどハードルが高くて使っていなかった。コマンドラインも好きだし十分使えていたので。この間もこういうエントリーを書いたばかり。

gitコマンドライン厨の俺だけどヘルプ見ないと使えないコマンドが多いのでメモ - ぴよログ

ところで今日、ある拍子に「Diff見づれえ!」って思ってしまったから試しに使ってみることにした。

基本は2つ(かな?)

Magitは色々なことができるが、最初は最低限の使いかたを知るほうがいい。普通にコードを書いていてそこから使いうる基本的なコマンドはこの2つなのかな?というのがちょっと使ってみた感想です。

  • magit-status
  • magit-log

magit-status

Magitの全てはここから始まるぐらいの勢いで重要なコマンドのよう。このコマンドを叩くと現在のワーキングツリーの様子が表示される。

この画面で色々操作することになるわけ。

例えば上のスクショではUnstaged ChangesやStaged Changesなファイルの名前が出ているんだけど、ファイルにカーソルを合わせてTabキーを押すとこの画面内でDiffを見ることができる。さらに他のキー操作でIndexへの追加や取り消し、PullやPush、Stashの操作などもできたりする。

操作 コマンド
Diffを表示/非表示 Tab
カーソルのファイルをStage s
全ての変更をStage S
カーソルのファイルをUnstage u
全ての変更をUnstage U
ファイルの変更を元に戻す v
カーソルのファイルを.gitignoreに追加する i

このぐらいのコマンドを覚えておけば基本的なことができるようになるから日常的に使えるようにあってくる。込み入ったことをしたくなったとしてもその都度覚えるコマンドが少しで済むので躓くことはなくなると思う。

magit-log

もう1個使いそうなのがmagit-logコマンド。名前の通りコミットログを閲覧するためのもの。実行するとこんな画面が出る。

npでコミットを次々に移動でき、もう1つのWindowにはそのときのDiffが展開された状態でこんな具合に表示される。

いい感じ。

さてこんな便利そうなMagitだけど、デフォルトの色が超見づらいので僕は早速色を変えた。上のスクショも実は色を変えたあとだ。変える前はこんな感じだった。

個人的にEmacsではbackground-colorが付いてるのがものすごく見づらいと思う。だから次のように変えた。

;; 文字色変更
(set-face-foreground 'magit-diff-add "#00FF00") ; 追加行
(set-face-foreground 'magit-diff-del "#FF0000") ; 削除行
(set-face-foreground 'magit-diff-file-header "#00FFFF") ; Diffのファイル名部分
(set-face-foreground 'magit-diff-hunk-header "#00AADD") ; Diffのhunk部分
(set-face-foreground 'magit-section-title "#FF00FF") ; 見出し部分

;; 背景色変更
(set-face-background 'magit-item-highlight "#282822") ; 選択行
(set-face-background 'magit-diff-add "#282822") ; 追加行
(set-face-background 'magit-diff-del "#282822") ; 削除行
(set-face-background 'magit-diff-file-header "#282822") ; Diffのファイル名部分
(set-face-background 'magit-diff-hunk-header "#282822") ; Diffのhunk部分
(set-face-background 'magit-section-title "#282822") ; 見出し部分

背景色はEmacsのテーマに合わせてある。このほうが断然見やすい。

Magit User Manual