magit 2.7の操作メモ が古くなってきた & 挙動が変わっているので最新版はこの記事に移行する。
git log
-
M-x magit-log-buffer-file
- 現在開いているバッファの git log を見る。
git diff
-
M-x magit-diff-unstaged
- stage されていない差分を表示する。
- 特に設定していないなら magit-status に表示される。
- オプション -b を与えると空白の差分を無視する。magit-status を開いているときなら d -b u
- デフォルトでは行の diff しかわからないが続けて
D
t
を叩くと単語の diff を見る事ができる。 - 設定ファイルで
(setq magit-diff-refine-hunk t)
としておくと hunk の差分の中でも単語に差分がある箇所を強くハイライトする。
git remote
-
M-x magit-remote-add
- 続けてリポジトリ名、URL を与えるとリモートリポジトリを追加できる。
- magit-status を開いているときなら M a だけでよい。
git fetch
-
M-x magit-fetch-other
- 続けてリポジトリ、ブランチ名を与えると一個だけブランチを取得できる。
- magit-status を開いているときなら f o だけでよい。
- magit-refs を開いているときリポジトリにカーソルがあたっているならリポジトリ名を省略できる。
git blame
-
M-x magit-blame-addition
- 以前の magit-blame と同じように振る舞う。ファイル編集は不可。
- 気になる行にカーソルを当てて Enter を押すとコミットの詳細を見ることができる。
-
M-w
でハッシュ値をコピーする。
-
M-x magit-blame-echo
- 現在開いているバッファを水平線で区切る。
- 水平線の下にカーソルを持っていくと、その箇所のコミットメッセージをエコーエリアに表示する。
- magit-blame-addition と違って、そのままファイルが編集可能。
- ただし
M-w
は素のままなのでハッシュ値が取りたければM-x magit-blame-copy-hash
のように実行する必要がある。
git cherry-pick
-
M-x magit-cherry-pick
- 続いて A を押すと cherry-pick するブランチを選択する。
- magit-log でコミットを範囲選択して
A A
するやり方もある。
git reflog
-
M-x magit-reflog-current
- 続い任意のコミットへカーソルを当てて
X s RET
でブランチの HEAD をリセットできる。
- 続い任意のコミットへカーソルを当てて
git patch
-
M-x magit-patch
- 続いて
a
a
を押すとファイルを選んでパッチを適用できる。 - magit-stauts では
W a a
- 続いて