Git

【Git】GitとGitHubって何?Gitって何のために使うの?

今回はGitって何のために使うのか、どんな時に使うのか、どうして使うのかについてまとめていきます。
「Gitって何のために使うのか」考えてみてください。

答えは…

ファイルのバージョンを管理するため


です。

バージョンを管理するということはどういうことでしょうか。
始めにファイルのバージョン管理しなかった場合のことを考えてみましょう。

ファイルのバージョン管理しないと、どういうことが起きるのか。
例として、スピーチ原稿を作っていた場合を考えてみましょう。

フォルダー内に似たような名前がある場合、どれが最新なのか分からなくなってしまいます。
「ファイル名に_最新」と記述されていたり、「_コピー」というものがついていたりすると尚更どれが最新なのか分からなくなります、

1人で作業する場合は最新のファイルが分からなくなるくらいで済みますが、複数人の場合はどうでしょうか。
例として、決算書を共有サーバに置いて複数人で作業するとしましょう。

Aさんが決算書を編集している間に、BさんがAさんが編集する前の決算書をファイルサーバーにアップロードしたとします。
この場合、Aさんがアップロードした際にBさんの箇所を上書きしてしまいます。

このようなことが発生してしまいます。
この時「誰が、いつ、何をしたのか」が分かれば、嬉しいですよね。

しかし通常の場合、Excelファイルを共有サーバーにアップロードしてしまうと、誰が編集したのか分からないです。そのようなことを防止するためにGitを利用するのです。

Gitの歴史

リーナス・トーバルズ
Gitはどのようにして誕生したのか、歴史について触れることで、Gitをもっと身近に感じることができます。
「リーナス・トーバルズ」という方をご存知でしょうか。

そう、LinuxというOSを作った方です。
もはやLinux開発している人は知らない人はいないほどの有名人です、

当時、Linux開発で使用していたバージョン管理システムのライセンスがきれてしまいました。
他のバージョン管理システムの導入を検討したのですが、Linuxの開発は世の中の開発の中で最も高度な開発と言うことが言われています。

その高度な要求水準を満たすフリーのバージョン管理システムは存在しませんでした。
そこで、「自分たちで作ってしまえばいいじゃね?」ということで「2005年 5月頃」Gitの原型となるプログラムの開発が開始されました。

「ものがないのなら〜自分たちで作っちゃおう!」という考えから誕生したのがGitになります。
また他のバージョン管理システムでは、「何がいけなかったのか」というと「ブランチ」がきれないということが問題だったのです。

ブランチとは?

ひとつのプロジェクトから枝分かれをさせ、別の作業を行うことを「ブランチを切る」といいます。
ブランチとは、「支流、枝、分岐する」といった意味があります。
つまり、ブランチを切るというのは、「現行バージョンから枝分かれをさせる」という意味になります。

アプリケーション開発は「ブランチ」を分散して、細かく開発できるようにするのが一般的です。
そのブランチを切ったり、ブランチを統合(マージ)するというのにものすごく時間がかかってしまいました。

他のファイルバージョン管理システムは、大規模に開発する時に非常に使い勝手が悪かったのです。
Gitは、迅速にブランチを扱えるので大規模に開発するときに非常に使いやすいように開発されています。

したがってGitは…

  • 高速で
  • シンプルな設計で
  • ブランチが並列開発が可能なので

大規模な開発プロジェクトにはもってこいのバージョン管理システムなのです。

GitHubとは?


GitHubはGitHubのCEO:クリス・ワンストラス氏のサイドプロジェクトとしてスタートしました。
もともと、友達とコードをシェアしやすいホスティングサービスが欲しいがために開発されました。

GitHubとは、Gitの履歴情報をオンライン上で預かってくれるサービスです。

GitHubの特徴

GitHubの特徴は、世界中の開発者とコラボレーションできるような機能を提供しています。
自分が書いたコードを、GitHubを通して他の開発者に取り込んでもらうことも、相手が修正したファイルを自分のローカルに取り込むことも容易にできるのです。

またリクエストをベースにコメントのやり取りもできるので、そのリクエストに対して「了解しました!」「不具合があるから取り込めない!」「もっとこのようにして欲しい!」というようなことを依頼することもできます。
したがって、チームで開発するときはソースレビューが容易になるというメリットがあります。

GitHubは、公開リポジトリーは「無料」で、非公開リポジトリーは「有料」となります。
Bitbucketは、非公開リポジトリが「無料」で、公開リポジトリーが「有料」になります。

小規模の開発で、公開したくない!というのであればBitbucketを利用するといいでしょう。

GitHubでは、ソースが公開されているので、世界中のエンジニアよりフィードバックをもらったり、開発に参加してもらうことが可能なのです。
GitHubが登場してから、オープンソースの敷居が低くなりました。

ぜひ、オープンソースの世界に足を踏み入れてみてください!