Gitは、ソースコードや各種ドキュメントを管理するための分散型バージョン管理システムの代表格です。Gitにはローカルリポジトリとリモートリポジトリが存在し、その違いを把握する必要があります。以下では、その比較と使い分けを説明します。
ローカルリポジトリとは
ローカルリポジトリは開発者が自身のコンピュータ上に作成・保持するリポジトリです。
ローカルリポジトリでは開発者が作業するプロジェクトの全てのファイルとバージョンの履歴を保存します。なので、開発者は必要に応じて過去のバージョンのファイルを参照することができます。
変更管理は、Commit(コミット)によって実施します。Commitした時点の断面のスナップショットを作成することで変更履歴を管理しています。この断面を切り替えることで、以前のバージョンであったり異なるブランチで作業することが可能になります。
また、ローカルリポジトリではブランチの作成や変更の比較、ブランチのマージや履歴の表示等機能が提供されており、開発をサポートしてくれます。
ローカルリポジトリは各開発者が自分の作業を管理するために使用します。複数人による共同開発やプロジェクトを公開する場合は後述のリモートリポジトリも併用します。
管理する場所
ローカルリポジトリは先述の通り、開発者個々のローカル環境で管理します。
リモートリポジトリとは
リモートリポジトリは共有リポジトリとして複数の開発者がアクセスし、変更の共有および同期を行うためのリポジトリです。
開発者はそれぞれのローカルリポジトリにて自身の変更を管理しています。ローカルリポジトリでの変更はリモートリポジトリにPushすることでリモートリポジトリでその変更が反映されます。
誰かがリモートリポジトリにPushした変更は、リモートリポジトリからPullすることでローカルリポジトリに反映することができます。
また、リモートリポジトリはバックアップとしての役割も果たしています。たとえばある開発者のローカルリポジトリが破損した場合や別の環境で作業する必要が出てきた場合、リモートリポジトリからコピーを取得することで断面を復元することができます。
管理する場所
リモートリポジトリのプラットフォームとして有名なのは、GitHub、GitLab、Bitbucketなどです。
Githubは基本公開されているため、オープンソースプロジェクトではよく利用されています。
BitbucketはAtlassianが提供するGitリポジトリホスティングサービスで、利用者のプライベートリポジトリに対しては無料で使用できます。なので、非公開のプロジェクトでよく活用されます。
上記のようなプラットフォーム以外にもリモートリポジトリを構築することは可能です。共同で開発するメンバーがアクセスできる場所にリポジトリを立てればよいので、共有サーバ等にリポジトリを構築することも可能です。社内プロジェクト等で社内ネットワーク内で完結しないといけない場合等はこういった方法でプロジェクトのソース管理が可能になり舞ます。
ローカルリポジトリとリモートリポジトリの関係を図で整理します。
ローカルリポジトリは個人の環境下に存在します。
リモートリポジトリは複数人で共有できる場所に存在します。
Gitを学ぶ
Gitに関する書籍はいくつも出版されていますが、以下がわかりやすく個人的におすすめです。
まとめ
Gitにおけるローカルリポジトリとリモートリポジトリの違いについて解説しました。
ローカルリポジトリは各個人の環境に存在するリポジトリで、個人の変更管理を実施します。
リモートリポジトリは複数人でリポジトリを共有することで、自身の変更内容を他者と共有することができます。また、Github等ではリポジトリを公開することも可能です。
これらの特徴を把握したうえでGitを活用し、開発を効率化させてください。
ではでは👋