5章ファイル管理とインデックス
何であれバージョン管理システムを使っているときには、作業ディレクトリでファイルを編集し、変更点を安全に保管するためにリポジトリにコミットする。Gitもその点では変わりはないが、作業ディレクトリとリポジトリの間にインデックスという中間的な階層を挿入しているところが異なる。インデックス(index)はステージングディレクトリ(staging directory)とも呼ばれ、コミットを行う前の最終ステップとしてさまざまなファイルに加えられた変更を収集する(すなわち、ステージングする)ために使われる。
インデックスは、作業ディレクトリの現状のキャッシュと考えることができ、新しいコミットを作るとき、リポジトリの状態を問い合わせるとき、2個のブランチの間でマージ操作を実行するときに重要な役割を果たす(マージについては、「6章 マージ」で詳しく説明する)。ここでは、基本を説明することが目的なので、コミット(「4章 コミット」)との関連でインデックスの重要性を見ていく。
この章では、ほかのVCSと比較したとき、Gitのインデックス、ステージングディレクトリがいかに独自なものかについて説明する。また、リポジトリへのファイルの追加/削除の方法を説明しながら、インデックスとファイルコレクションの管理方法も説明する。Gitでのファイル名の変更の方法とインデックスの状態の確認方法も示す。最後に、リポジトリのバージョン管理のために追跡する必要のない一時ファイルなどのファイルをGitに無視させる方法を説明する。
5.1 インデックスの重要性
Gitでコードを管理するときには、作業ディレクトリで編集し、インデックスに変更を蓄積し、インデックスに蓄積された変更全体を1つのチェンジセットとしてコミットする。これは、新聞記者の立場で考えるとわかりやすくなるかもしれない。記者が記事案(ドラフト)を準備すると、編集委員がそれを読んで変更すべき箇所を提案する。記者は提案された変更を組み込み、最終的な記事が刊行される。ここで、ドラフトはGitの作業ディレクトリ、編集委員による変更はインデックスに追加していくもの、刊行された記事は最終的なコミットを表す。 ...
Get 実用 Git 第3版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.