
この間、リポジトリという言葉を聞いたのですが、この言葉の意味や、使われる場面がいまいち分かりません。教えてください。
このような疑問に回答します。
・リポジトリはデータの保管場所
・Gitのリポジトリでソースコードを共有
「リポジトリ」という言葉を聞いたことはありますでしょうか。皆さんの中には、大学の「学術機関リポジトリ」などといった形で聞き覚えがある方もいるかもしれません。今回は、IT業界におけるリポジトリという言葉の意味や、実際に使われる場面などについて解説していきます。
リポジトリとは?
リポジトリについてやな。説明するで。英語では、Repositoryで、意味は「倉庫」や。レポジトリとも呼ばれる。IT業界でも、倉庫のようなイメージで良いで。


倉庫・・・データを倉庫に入れるイメージでしょうか。
せやな。システム開発において、意味合いとしてはほぼそのままや。リポジトリはシステム開発などの場面でよく使用される言葉で、システムを構成しているデータやプログラムの情報が格納されたデータベースのことを指す。


つまり、データを保管する場所のことを指しているのですね!
せやな。システム開発の場面だけではなく、基本的にリポジトリという言葉が出てきた場合、何かを格納する保管場所だという認識を持っておくと良いで。


わかりました!それから、倉庫・・・リポジトリは、データベースのことを指しているとのことでしたが、場所としては、どこに設置してあるのでしょうか?
リポジトリは、基本的にはネットワーク上に置かれる。LANやサーバー上に設置されるケースが多いで。それから、ネットワークをとおさずに直接接続することも可能や。


ネットワークを介さなくても設置はできるということですね。他に、リポジトリのメリットは、データを格納しておけるということ以外に何かあったりしますか・・・?
リポジトリのメリットは?
せやな。リポジトリのメリットとしては、様々なデータを一元管理でき、複数人でそれをいつでも参照したり更新できることにもあるで。特にシステム開発の場面では、リポジトリがあることによって、ソフトウェアのライフサイクル全体の情報を必要に応じて活用できるから便利や。


なるほど。かなり使えそうですね。
うむ。特に、Git(ギット)ではリポジトリをよく使う。


Gitって何ですか?
Gitって何?
Gitは、プログラムのソースコードの変更履歴を記録したりする「分散型バージョン管理システム」の一つや。いつ誰がソースコードを変えたのか、最新のデータはどれか、などといった内容を複数人で共有できる。そのソースコードの履歴を共有できる場所が「リポジトリ」や。


ここでリポジトリが出てくるのですね。
そう。ソースコードを変更したら、リポジトリに履歴を残していく。元々は、Linuxの開発者たちが使っていて、世界中の開発者・技術者に広まっていったんやな。ちなみに、ソースコードと、Linuxについても説明しておくで。

- Linux:オープンソースのOS
- ソースコード(Source code):HTMLなどのプログラミング言語で記述されたテキスト

なるほど。分かりました。ちなみに、分散型バージョン管理システムの「分散」っていうのは、どういう意味なのでしょうか。
Gitのリポジトリは1つしかなかったんやが、それやと利用者が増えるにつれて不整合が起きたりする。それを防ぐために利用者ごとに「ローカルリポジトリ」を設置した。全体版では「リモートリポジトリ」という形になる。ローカルリポジトリは、ローカル環境で使える。せやから、チームで作業をする時なんかは、それぞれのメンバーがローカルリポジトリで作業を行い、その作業結果をリモートリポジトリに反映させる流れやな。


なるほど!
Gitは、チームでも使えるし個人でも使えるツールや。ちなみに、Gitはローカル環境で使えるから、オフラインでもいろいろ作業ができるで。


すごいですね。ちなみに、GitHubとGitってどう違うのですか?
GitHubは、Gitを利用した、Webサービスやな。Gitをオンライン上で管理して、エンジニアを支援するためのサービスや。クラウド上で、Gitを使ったソースコードのバージョン管理ができ、他にもSNS機能など、様々な便利機能がある。GitHub上にリモートリポジトリをつくって、ソースコードなどを共有しつつ作業をすることが多いな。


GitHubはエンジニアにとって便利なサービスですね!
あとは、リポジトリに関する用語も一緒に覚えておくんやで。

・チェックアウト:リポジトリからデータを取り出すこと
・チェックイン:リポジトリのデータに変更を加えること

空港みたいな表現ですね。チェックアウトが取り出すっていうのは何となく理解できますが、チェックインがデータを変更するという意味なのは難しいですね。しっかり覚えておきます!
まあ、現場で使われる言葉だから、覚えておいて損はないで。

まとめ
リポジトリという言葉がどのような場面で使われるかわかったかな?


はい!
・リポジトリとは、データやプログラムの情報が格納されたデータベースのこと
・リポジトリでは、様々なデータを一元管理でき、複数人でそれをいつでも参照したり更新できる

ですね。GitやGitHubについても理解できました!
うむ!まずはそこを理解していれば十分やな。リポジトリが具体的にどんな場面で行われているかなど、実践の中でこれからしっかり勉強していくように。これからも、わからんかったら俺に聞くんやで。
