Magit は今まで食わず嫌いで使ってこなかったけど、ようやく覚える気になったので備忘録として書き残します。

インストール

M-x package-list-packages からインストールできます。 自分で使っているパッケージマネジャーがあればそれに従ってください。

セットアップ

elisp に以下を追加します。

1
(global-set-key (kbd "C-x g") 'magit-status)

後ほど magit を起動すると思いますが、起動したあと .emacs.d ディレクトリに transient というディレクトリができるかと思います。 これは magit の UI を出すために使っているものです。.emacs.d を git 管理している場合などは除外しておくといいでしょう。

使い方とよく使うコマンド

Git 管理配下のディレクトリで C-x g とすると、以下のような magit のモードになります。 ここで ? とするとコマンド一覧が見られます。なおこのモードから抜ける場合は q を押します。 また見えづらいですが、左端に> 記号がある場所で TAB を押すことで表示・非表示ができます。

magit01

基本的にファイルを編集したあと、このモードに入り git コマンドを実行という流れになります。 magit-status にはファイル変更の自動検知はないので、開いたままの場合は g で変更を読み込みできます。

以下 git コマンドとの比較チートシートです。

やりたいこと Git の場合 Magit の場合
stage に追加 git add <file> ファイルの行で s
stage に追加(全て) git add –all Untracked files の行で s
unstage git restore –staged <file> ファイルの行で u
unstage(全て) git reset Staged changes の行で u
commit git commit c を二回タイプ後、メッセージ入力して C-c C-c
branch checkout git checkout <branch> b b 移動したいブランチで RET
branch の作成 git checkout -b <branch> b c コピー元を選択後 RET ブランチ名入力 RET
branch の削除 git branch -d <branch> b k 削除したいブランチで RET
stash git stash z z
stash list git stash list z l
stash pop git stash pop z p
stash drop git stash drop z k
diff on staging git diff –cached 確認したいファイルの行で TAB
diff on modified git diff 確認したいファイルの行で TAB
log on current git log l l で表示 n,p で移動 q で終了
push git push P u
pull git pull F u

個人的に感動したのは Untracked files な状態のファイル行で i とすると .gitignore に追加されるコマンドです。

動画で使い方を見る

たぶんこの手の操作は文字じゃなくて動画で見たほうが分かりやすいと思うので、参考になりそうなものを貼っておきます。