Emacs の git クライアント magit の個人的なまとめです。正確かどうかは保証しません。
こんな cheat sheet を参照するくらいなら magit の公式ドキュメント読んだほうがいいと思う。
- git
- git version 2.6.3
- magit
- magit 20151114.1619 installed A Git porcelain inside Emacs
magit は melpa で入れた
magit は最新の stable な git を仮定する、かつ、その他の emacs の git を扱うモードとコンフリクトすることがあるので、気をつけるように。
magit 自身も最新でないと動かないので melpa で (emacs で M-x package-list-packages)
u
からの
x
で upgrade しておくこと。emacs は restart 。
(magit-status)
あまりにも使うので prefix key を割り当てている
magit のマニュアルでも割当を推奨している
q
TAB で toggle
s
もし staging したものがなかったら "全部 stage しますか(y/n) と聞かれるが、nが無難
u
c
commitなどを行うメニューバッファが出るので、それに従う。今のところ、さらに c らしい。
部分的に commit するにはまず Tab して、変更点を選び c
個人的には magit を使う最大の理由がこれ。
commit messages の英語の書式テンプレートは、この文章の終わりで触れる。
commit message を書き終えたら、 C-c C-c する。
commit message を書くのをキャンセルしたいときは C-c C-k
p
l
show history などを行うメニューバッファが出るので、それに従う。今のところ、さらに l らしい。
直前のコミットメッセージの typo をしたいとき。
unpushed commit を選ぶ。
c して commit モードにする。
a して amend
バッファが出るのでコミットメッセージを書き直す。
これをよく忘れるので、書きたかった。
unstaged な変更が残っていたときは git rebase できない。
まず commit するか、あるいは、一時的に git stash する
r
r
r
i
commit 行を status window で選択 (C-Space で複数行選択可)
C-k commit を削除
r, w
reward コミットメッセージの編集
C-c C-c すると、編集モードになるので、編集する。 C-c C-k で abort
squash
s
git rebase + squash の基本だが、squash する commit は、「先頭を残して」2 番目以降の squash したいコミットを選択する。さもないと、
Cannot 'squash' without a previous commit
と、叱られる。
r
f
stash は緊急避難的な意味合いを持つらしく、あまり勧められない。 しかし、magit-status で表示されるので、どうするかは後で決められる。
z
b
c で作る。どのブランチから分かれるかを最初に聞かれるのでタイプ (デフォルトは master) 次に、branch name を入れる。
branch name べからず集
b
b
TAB による branch name 補完が効くので、積極的に使う。
m
m
マージ
e
マージ時の commit name の編集
A
A cherry-pick a commit
x
たとえば fix について fixed と書くのか fix と書くのか fixing と書くのか Fix と書くのか FIX と書くのか、 そもそもプロジェクトで統一するのか統一しないのか、という議論がある。
そんなのは個人的にはどうでもよくて、コミッターに意味が通じること、かつ、短ければ短いほど良い。 長いコミットログを書いて C-c C-c すると magit に怒られます。
git そのものや Linux kernel のコミットログを見ればいいんじゃね?という意見があって、なるほどねと思いました。
このあたりでも揺れてる。
- Should I use past or present tense in git commit messages? :closed
- Should commit messages be written in present or past tense?
Github Markdown CSS - for Markdown Editor Preview にある github.css を使う
% pandoc -s input.md -t html5 -c github.css -o output.html
- pandocでmarkdownからgithub風シンタックスハイライトされたhtml生成(ついでに数式)
- Document workflow - Pandoc: markdown を github 風 html に変換する
GitHub の Web editor を使わずに、 pandoc を使って Gist の markdown を push する前に手元でHTMLにする
- gist を作るときに、ファイル名を filename.md にする(先頭のタイトルではなく、二つ目のファイル名のテキストフィールド)
- gist を手元に clone
filename は空白を含まないように。