#1. はじめに
プログラミングを始めたての人ならすぐに見かける「GitHub」というワード。
ただでさえアルファベット多くて大変なのに、急に出てきたこいつ何だ?と思った方もいるのではないでしょうか?
今回は「GitHubってなに?」というのを極力簡単にお伝えします。
#Gitとは
Gitとはプログラムを管理する分散型の管理システムのこと。
....?
うん、「分散型」というよくわからん言葉はいったん置いときましょう。
とにかく基本はプログラム(書いた文字でコンピューターが動くもの)を管理できる仕組みの事です。
#システム=「もの」
システムも一つの「もの」です。
なので作るためには細かい部品(つまり機能だったり見た目だったり)が合わさって出来上がります。
車を作るためにも、タイヤ、エンジン、ハンドル、車体などいろいろ必要ですよね。
そしてそれぞれを作る人がいます。
Gitによってそれが誰がどの部分を作っているのかが分かります。
#システムは実体がない
ここまでは現実世界で物を作るのと変わらないですが、システムは実体がありません。
なので、プログラムの変更履歴を見たり、戻ったりすることができます。
どういうことかというと、車の部品は接続部が曲がれば、うまく組み立てができないし、塗装が間違った色にしてしまうとその車は台無しになります。
しかしシステムは実体がないため、接続部が間違っていたら修正できるし、色が違えば変えられる、つまり再修正できる特徴があります。
この特徴もGitで活かされています。
#「分散型」であること
ここでもう一つの大きな特徴が、先ほど保留してた「分散型」であること。
プログラムは2つの空間で保存ができます。
それがローカルリポジトリとリモートリポジトリ、いわゆるプログラム用の「倉庫」です。
ローカルリポジトリ=自分だけの倉庫、リモートリポジトリ=みんなの倉庫と捉えてください。
昔は実は「集中型」といって、みんなの倉庫から部品を取り出して作ってみんなの倉庫に戻す作業を行っていました。
しかしそれではみんなの倉庫にいける環境(サーバーにアクセスできる状態)でないと作業が進められないデメリットがありました。
そこで自分だけの倉庫を持つ事でそこから作業を進めることができるし、動作確認を行ってからみんなの倉庫に収納することができるようになりました。
これも実体がないものなのでコピーが自由できるからこそ可能な特徴です。
#それで「GitHub」って?
ここまででGitという仕組みの意味はなんとなくわかったと思います。
戻りますが、GitHubはそのGitという仕組みの中の一つのサービスです。
(どのスケジュールアプリ使うかとか、どのメモアプリが最適かというの一緒です。)
#まとめ
システム開発をより便利に、円滑に、かつミスなく進めるためのツールです。
ゲームで言うとセーブポイントですね(←伝わる?)
システム開発は基本チームで作ることがほとんどです。
しっかりGitの使い方は学んでおきましょう!