Gitのワークエリア、ステージングエリアとリポジトリ
基本コンセプト
我々は最初のGitの下の作業領域、一時記憶領域とリポジトリの概念を理解します
- ワークスペース:あなたがコンピュータカタログで見ることができます。
- テンポラリー・エリア:英語段階、またはインデックスと呼ばれます。 一般的に「gitのディレクトリ「インデックスファイル(.git /インデックス)に格納されているので、私たちは時々、一時面積指数(インデックス)と呼ばれます。
- リポジトリは:ワークスペースが隠しディレクトリ.gitを持っている、これは、作業領域ではなく、Gitのリポジトリ。
次の図は、リポジトリ間のワークスペース、リポジトリとステージング領域との関係を示しています。
リポジトリの右側のワークエリアに左の図。 地域の「インデックス」と表示されたリポジトリ内のテンポラリ領域(ステージ、インデックス)は、 "マスター"ブランチをマスタディレクトリツリーで表現されるとしてマーク。
図は、我々はこの時点で「HEAD」が実際にmasterブランチを指していることがわかります "カーソル。」 だから、マスターを置き換えるために使用することができるHEADに現れるようにコマンドを配置します。
Gitのオブジェクトライブラリとして識別図領域オブジェクトは、実際にオブジェクトやコンテンツ制作のさまざまなを含む「.git /オブジェクト "ディレクトリを、位置しています。
作業領域を実行するためにファイルを変更(または追加)するときは、ファイルの内容がライブラリ内のオブジェクトに書き込まれている作業領域を変更するには、中にコマンド、ディレクトリツリーが更新されたステージング領域を "gitの追加」(または追加します)新しいオブジェクト、およびオブジェクトIDは、ファイルインデックスの一時領域に記録されています。
リポジトリへの書き込み、(gitのコミット)コミットツリー一時領域(オブジェクトライブラリ)を行う場合は、masterブランチに応じて更新されます。 有向ツリーが提出されたときにマスターゾーンであるスクラッチディレクトリツリー。
"gitのリセットHEAD」コマンドを実行すると、ディレクトリツリーステージング領域が書き換えられます、それは木のマスター分岐点に置き換えているが、作業領域は影響を受けません。
"gitのは、rm --cached <ファイル>」コマンドを実行する場合、ステージング領域から直接ファイルを削除し、作業領域には、変更を行うことはありません。
"。gitのチェックアウト"または "Gitのチェックアウト - <ファイル>」を実行する際のコマンドは、ステージング領域または指定されたファイルを持つすべてのペーパーワークエリアに置き換えられます。 この操作は非常に危険ですが、それは、ワークスペースの変更がステージングエリアに追加されていないクリアされます。
"。gitのチェックアウトHEAD」を行うか" gitのチェックアウトHEAD <ファイル> "コマンド、およびファイルの全部または一部をマスターするHEADブランチポイントと一時記憶領域とワークスペースファイルを置き換えようとするときに、。 変更は唯一のワークスペースコミットされていない変更がコミットされていない一時領域が削除されますクリアされませんので、このコマンドはまた、非常に危険なことができます。