Gitの仕組み

Gitは、ファイルの変更履歴を管理・追跡するためのバージョン管理システムです。

バージョン管理システムは、その他にCVSSubversion(集中型バージョン管理システム)があります。

・集中型バージョン管理システム

ファイルの変更履歴はすべて単一のリモートリポジトリで管理。

f:id:mkyosuke:20191218213132p:plain

ローカルでのファイル変更は可能だが、下記はリモートリポジトリへの接続が必須。

・commitでリモートリポジトリに変更履歴を反映

・updateでリモートリポジトリの変更履歴を取得

・過去の変更履歴を表示

 

・分散型バージョン管理システム(Git)

対して分散型のGitは、リポジトリを利用しているユーザごとにリモートリポジトリのような完全な複製がローカル環境に作ることが可能。

・commitでローカルリポジトリに変更履歴を反映

・checkoutでローカルリポジトリの変更履歴を取得

・fetch(pull)でローカルリポジトリにリモートリポジトリの変更履歴を取得

f:id:mkyosuke:20191218214448p:plain

Gitは3つのデータ領域を利用して変更履歴を管理できる。

・作業ディレクト

ユーザが実際に作業しているディレクト

・ステージング・エリア

作業ディレクトリ上で行った変更のうち、変更履歴として次のコミットしたい対象を管理する領域。

・Gitディレクト

Gitのリポジトリのすべての変更履歴を保持している領域。