EmacsからGitを扱いたくなったので、Magitを入れてみた。
眺めただけでは快適なのかどうなのかよくわからんので、「chapter4の独りで使う」をmagitでやってみた。
gitの初期化
M-x magit-initでディレクトリを指定すればgitリポジトリの初期化をしてくれます。ディレクトリが存在しなければ作成してくれる。
M-x magit-init magit4と打つ
これでmagit4というディレクトリが作られてgitリポジトリが初期化される
最初のコミット
C-x C-fでindex.htmlを作成します。ファイルの中身
<html> <head> <title>Shizugit</title> </head> <body> <h1>Shizugit</h1> <p>Shizugitでは、参加者を募集しています。 最新の版管理システムgitについて熱く語り合いましょう。 </p> <address> <a href="mailto:magit@test.com">kzfm</a> </address> </body> </html>
C-x C-sで保存します。
さて、ここでおもむろにM-x magit-statusと打つとmagit-modeのバッファーが開きます(下段)。
カーソルをindex.htmlにあわせてs キーを打つとステージングされます。これはgit add index.htmlと同じ事です。逆を行いたい場合(アンステージ)はuキーです。
この状態でcを押すとコミットログ編集画面がでるので「第一回参加募集」とでも書いておきます。
C-c C-cを打てばコミットが作られます。
変更の記録
index.htmlのaddressタグの直前に静岡っぽいテーマを挿入してみます。
<p>第一回会合では、セミナーも開催します</p> <ul> <li>お茶の淹れ方 <li>静岡酵母について <li>Sphinxとか </ul>
セーブ(C-x C-s)します。
変更を見るには先ほどのmagit-modeでindex.htmlにカーソルをあわせてdを押します。これはつまりgit diffです。先程追加した部分が差分として表示されてます。
TODO: git diff HEADのやり方を調べる
コミットを作成します。なにもステージングしてない状態でcを押すと、ステージングしてない変更をステージングするかどうか聞いてくるのでyを押してコミットします。
変更履歴を見る
これで2つのコミットログができているはずなので、変更履歴を見てみます。M-x magit-statusでmagit-modeのバッファーを表示してlキーを二回叩きます。
部分変更の記録
論理的に異なる2つの変更を施します。みんな大好きSEO対策と、おやつのアナウンスです。index.htmlは次のようになります。
<html> <head> <title>Shizugit</title> <meta name="keywords" content="SEO,SEO対策,SEOアクセス解析,アクセスアップ,SEOツール"> </head> <body> <h1>Shizugit</h1> <p>Shizugitでは、参加者を募集しています。 最新の版管理システムgitについて熱く語り合いましょう。 </p> <p>第一回会合では、セミナーも開催します</p> <ul> <li>お茶の淹れ方 <li>静岡酵母について <li>Sphinxとか </ul> <p>おやつは杉山フルーツの生ゼリーですYo!</p> <address> <a href="mailto:magit@test.com">kzfm</a> </address> </body> </html>
それぞれの変更を個別にコミットしたくなる(git add -p) わけですが、magit-statusバッファーのindex.htmlにカーソルをあわせてタブキーを押すと、ハンクが表示されるのでハンクをsでステージします。
下の図は、メタ情報の追加をコミットしたあとの状態です。
分割してコミットした後のログは以下になります。メタ情報とおやつ情報の2つに分けてコミットしました。
変更の取り消し
magit-statusバッファーでl l でログを表示させ、おやつ情報のコミットにカーソルをあわせてvを押します。その後cを押してコミット編集画面で編集したらC-c C-cでコミットします。
杉山フルーツの生ゼリーは美味しいんだけど、そこそこの値段がするので、毎回は出せないですね。
コミットを捨てる
index.cssというファイルを作成し、追加してコミットします。
このコミットを捨てたい時には、magit-statusバッファーでxを押すとresetするかどうか聞いてくるのでyをおすだけです。これはお手軽ですね
コミットをやり直す
コミット編集画面をもう一度表示させてC-c C-aでOK
結論
キーバインドは覚えるまで苦労しそうだけど、一度覚えれば忘れなさそうだしmagitをメインに使っていこうかなと。
- chapter4のgitの操作はほとんどmagitで操作できた
- キーバインドに慣れればmagitは快適に使えそう
- 入門Gitは良書