Githubについて
端的に言うとGithubは、Gitの仕組みを利用して、インターネット上でのスムーズな共同作業を可能にしたサービスのことで、バージョン管理をすることができる。
では、バージョン管理とは何か?
変化するファイルの状態のことを「バージョン」という。つまり、ファイルの変更をバージョンとして記録して、記録した地点へいつでも戻れる仕組みを作っているのが、Gitである。
バージョン管理ができることによって、開発者が複数人いても、ファイルの最新状態や変更履歴をわかりやすく保てるのがメリット。
Gitの大まかな仕組み
上記で述べた通り、Githubはバージョンを管理しているが、変更の差分を記録するのではなく、スナップショットを保存する仕組みをとっている。
スナップショットとは、ある時点でのソースコードや、ファイル、ディレクトリ、データベースファイルなどの状態を抜き出したもののこと。これによって、ファイルなどの差分を計算しなくて済むため、複数人での開発のスピードをあげることができる。
Githubの概要図
ワークツリー
Git管理下で作業しているディレクトリのこと。
ステージングエリア
コミット(スナップショットを記録すること)する変更を準備する場所。
ローカルリポジトリ
リポジトリは、コミットを貯めていく場所のこと。ローカルリポジトリは、手元で使っているパソコン内に作成する自分専用のリポジトリ。
リモートリポジトリ
ネットワーク上に存在するリポジトリのこと(Github)。
一旦ステージングエリアに追加する理由
ファイルやディレクトリなどの変更をすることによって、Gitに変更を加えたいものと加えたくないものを分けるために、ステージングエリアが設けられている。
参考
Git: もう怖くないGit!チーム開発で必要なGitを完全マスター (Udemy)