cygwin上のemacsから使い易い gitクライアントが無かったので、
Windowsでの開発では、ソースの編集はemacsでやっていても、
バージョン管理には TortoiseGit を使っていた。
TortoiseGit は GUIが上等なので、それはそれで便利なのだけど、
いちいちマウスを持つのが面倒なので、
編集に関わる作業は全部emacsの中で連続してやってしまいたい。
で、 magit を使うことにした。
今迄 emacs内でgitを触りたくなかったのは
cygwinのファイルアクセスが異常に遅いのが理由なのだけど、
最新のemacs-win64(25.0.50)とmagitの組み合わせなら何とかなる範囲。
で、インストール。
一旦、magitをGitHubからダウンロードしたものの、
中のドキュメントを見たら、 emacsのパッケージからインストールできる、
という事だったので、そっちに方針変更。
ドキュメント内では、 Melpa と Marmalade のパッケージが説明されていたけど、
結局、 Elpa 内の magit を使うことにした。
使用している git は 2.5.0、emacsは25.0.50 なので、
動作条件は満しているものの、 emacsがHEADのせいか、
こういう状況だった。
- Melpa は、パッケージ自体に問題がちょいちょい起こるのでリストから外している
- Marmalade の Magit は、バージョンが 1.2 だったけど、エラーで動作せず
- Elpaの Magit は、バージョンが 0.8.1 で、かなり古いけど、問題なく動作する
Elpaのパッケージは更新されそうにないので、
そのうち GitlHub の Magit 2.1.0 に乗り換えるかも知れない。
で、Magitの使用方法は、とても簡単。
1 2 |
M-x magit-status |
で、今のソースの更新状況が表示される。
これが emacs に出るのが本当に嬉しい。
うっかり編集や、気の迷いでチョット修正したのを忘れてしまう、
という、本当におバカなミスを防いでくれる。
TortoiseGit だと気付くタイイングが大分後になってしまうし、
そもそも作業が億劫なので、こまめに commit しなくなるから
gitの有難味が、ちょっとそがれてしまう。
emacs の magit-status 画面で普段使う機能は以下の通り。
- s でファイルを一つ add
- S 全ファイルを全てadd(git add -A)
- 実際には C-u S とする
- c コミット
- u addの取消
- l ログ一覧表示
- L ログ一覧詳細表示
Macでの作業は、基本個人のローカル運用なので、コレで十分。
Windowsの開発案件で必要な pull/push/merge などは、
今のところ TortoiseGit を使っている。
外部と関わる重要作業は、GUIがしっかりしていた方がちょっと安心なので。