magit.el を試してみた
egg.elいまいちーと書いたところ、
@gom egg.elが嫌ならmagit.elでどう?俺的にはそっちのが使いやすいけど。
http://twitter.com/rubikitch/statuses/1901340067
と id:rubikitch さんに教えてもらいました。ありがとうございます。
というわけで、早速試してみた。
インストール
makeするのね
$ git clone git://github.com/jdhuntington/magit.git $ ./autogen.sh $ ./configure --prefix=$HOME/lisp/magit $ make $ sudo make install
.emacsの書き換え
(add-to-list 'load-path "~/lisp/magit/share/emacs/site-lisp/") (require 'magit)
git status
statusバッファ上でキー操作を行う。
キー操作は以下の通りで、大体の操作はできる模様。
違うbranchにpushするとか、refspecをごちゃごちゃいじる辺りはどうなってるのか不明。
M-x magit-status
- TAB: セクションの表示を切り替える
- M-1, M-2, M-3, M-4: セクション表示の切り替え
- Section: Untracked file
- s: ファイルをステージに追加する(git add)
- i: .gitignoreにファイルを追加する
- C-u i: ignoreファイルを指定する
- I: .git/info/excludeにファイルを追加する
- k: ファイルを削除する*1
- Section: Unstaged Changing / Staged Changing
- s: ファイルをステージに追加する(git add)
- S: 全ファイルをステージに追加する
- u: ファイルをステージから降ろす
- U: 全ファイルをステージから降ろす
- k: 変更を取り消す
- c: コミットログを書く
- C: コミットログをチェンジログ形式で書く?
- C-c C-c: コミットする(git commit)
- C-c C-a: コミットをやり直す(git commit --amend)
- Log
- l: ログ一覧を表示する(git log)
- L: 詳細ログの一覧を表示する(git log --stat)
- ログを選択して RET: ログの詳細を表示する(git log -p)
- a: コミットを今のブランチに適用する(git cherry-pick & NOT commit)
- A: コミットを今のブランチに適用し、コミットする(git cheery-pick & git commit)
- v: コミットを取り消す(git revert)
- C-w: コミットのsha1ハッシュをコピーする
- =: 今のコミットとの差分を表示する
- .: コミットをマークする
- h or H: 今のHEADまでのログを表示する
- d: ワーキングコピーからあるコミットまでの差分を表示する(git diff)
- D: 2つのコミットの差分を表示する
- t or T: タグを作成する(git tag)
- x: コミットを取り消す(git reset --soft)
- X: コミットと変更を取り消す(git reset --hard)
- Stash
- z: stashを作成する(git stash)
- a: stashを適用する(git stash apply)
- A: stashをpopする(git stash pop)
- k: stashをdropする(git stash drop)
- b: ブランチを切り替える(git checkout)
- B: 新規ブランチを作成して切り替える(git checkout -b)
- w: wazzup?
- m or M: マージを行う
- X: 手動マージを中止する
- e: resolved conflict?
- R: rebase
- P: push (default remote, current branch)
- f: git remote update
- F: pull
- git svn
後半は疲れてしまったのでかなり適当です。
必要なコマンドは押さえられていて、いい感じに扱えそう。
*1:物理的に削除されるようだ