お久しぶりです、亀井です。相変わらず赤いプロ野球球団の動向を追いかけ続けています。一眼レフカメラと超望遠レンズも買ってしまいました。いい瞬間を捉えられたときはテンションが上りますね。
今回はGitをはじめたばかりのときにつまづきがちな「ステージング」について絵を交えて説明してみようと思います。
※ この記事は和み系記事です。
ステージングとは
git の作業スペースには「ワーキングツリー」と「インデックス」があります。
(以前に書いた記事 git pull と git pull –rebase の違いって?図を交えて説明します!から引用)
ワーキングツリーは作業している最中のスペース、インデックスはコミットするためのファイルを登録しておくためのスペースです。ステージングとは、「インデックスにコミットするファイルを登録する」ということです。
でも、私は始めのうちは「なんで git add が必要なの?直接 git commit したらいいのでは?」と考えていました。
ステージングの便利さ
イラストを交えてご説明しましょう。例えばこんなコミットツリーがあるとします。
先程の絵と今回の絵ではまったくイラストのタッチが違いますね。画風がなかなか決まりません。つらいです……
ここに「メスの猫にヒゲをつける」というコミットを積みたいのですが、コミットする前にオスにもヒゲをつけてしまいました。
git status では変更の詳細が見られず、オスかメスかわかりません。
git diff で変更の詳細を見てみましょう。
メスだったら git add します。
オスだったら……
何もしません。
この作業を繰り返して、メスの猫だけをインデックスに登録します。
ワーキングツリーの中身にメスの猫がいなくなったのを確認したら、コミットしましょう。
コミットできました!
(commitのスペルを間違えました)
なぜステージングが必要なのか?
コミットには、コミットメッセージにそぐわない無関係の変更を含むべきではありません。ですがときに作業の都合により、ワーキングツリーに大量の変更が積まれてしまうことがあります。ステージングはその中からコミットに含めたい変更を選別する作業といえます。
ステージングの必要性と便利さがおわかりいただけたでしょうか?それではよい git ライフを!
宣伝
クレイでは情報共有サービスDocBase を開発しています。
- 最大10人までの同時編集に対応!
- 細かい権限設定でオープンな情報もクローズドな情報もDocBaseに一本化
- SSO、2段階認証、IPアドレス制限に対応。ISMSも取得しており、セキュリティには力を入れています!
チームを作成して30日間は無料ですべての機能が使えるので、ぜひチームを作成して試してみてください。
このエントリーに対するコメント
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)
- トラックバック
「いいね!」で応援よろしくお願いします!