どうもキーです。
今回はGitHubについて説明していきます。
なお、本記事はGitHubをある程度知っている、利用したことがある人が読んでも、得られるものは(多分)ないです。
はじまりのまとめ
まずは先にまとめから載せます。
このまとめに行き着くように解説していきます。
- GitHubとは、「GitHub社が提供している」「Gitバージョン管理システムを利用する」「Webサービスである」。
- GitHubはGitを使った「ソースコードのバージョン管理をする」ために利用する。
- 「ソースコードのバージョン管理をする」と、「問題が発生した時の切り戻し」や、「複数人でのソースコード編集によるバッティング回避」に利用できる。
- GitHubは特に「オープンソースソフトウェアをGitの仕組みを利用して管理する」ということに対して強い。
GitHubとは
Wikipedia
以下、引用です。(引用と分かりづらかったので明記しときます。今後引用のスタイルも編集しようと思いました。)
GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェブサービスであり、Gitバージョン管理システムを使用する。 Ruby on RailsおよびErlangで記述されており、GitHub社によって保守されている。
さて、そもそもGitHubを知らない人にはこれを読んでもピンと来ない人も多いでしょう。
要点を説明すると以下のようなものです。
- GitHub社が提供している
- Gitバージョン管理システムを利用する
- Webサービスである
前提としてGitHubとは上記のものとして認識しておいてください。
まだ、ピンとは来ないと思うのでまずは何のために利用するのか説明します。
何のために使うのか
Gitバージョン管理システムを利用するWebサービスということですが、結局何をするために使うのでしょうか。
基本的な答えは、「ソースコードのバージョン管理をする」です。
では、「ソースコードのバージョン管理をする」とはどういうことでしょうか。
例えば、WordPressのレイアウトを変更するためにstyle.cssを変更するとします。
そのときに、変更前のファイルと変更後のファイルの内容、また、その変更点が履歴としてあとからでも確認できるようにするということです。
何が良いのか
ファイルの変更の履歴が確認できるのが一体なんだというのでしょうか。
しかし、ある程度プログラムなどを経験するとその重要性に気がつくはずです。
例えば、cssファイルでも編集を誤ればWebサイトのレイアウトが大きく崩れてしまうと思います。
一般的なプログラムでもバグが発生してしまった場合は、バグの改修や発生バージョンの調査が必要になります。
そのようなときに、いつどのタイミングのプログラム変更により問題が発生したかなどを確認するために、変更の履歴が必要になるのです。
え?それなら自分で常に変更前と後のファイルを保持しておけばいい?
不可能ではないですが現実的ではないですね。それを楽にするためにシステムと言うものがあるのですから。
また、一部の方はフォルダに以下のようなファイルが入っているのを見たことがあるかもしれません。(例はstyle.cssの場合)
style.css
styel01.css
改修前_style.css
改修後_style.css
新_style.css
style.css.bak
あるあるですが、何がなんだかわからないですね。
しかも質が悪いのは、「この中のどれか一つが最新とは限らない」ということです。例えば、「改修後_style.css」と「新_style.css」には、「style.css」から変更した「全く別の内容」が入っている可能性があるのです。
これは特に、複数人で開発をしているときに起きやすくなります。
そうです。このような複数人による編集でのバッティングを防ぐために、チームで開発をするとなるとバージョン管理システムはほぼ必須のツールとなるのです。
何ができるのか
GitHubはソースコードのバージョン管理に使うと書きましたが、結局何ができるのでしょうか?
実はここまで述べてきた「バージョン管理をする」機能はGitHubのサービスではなくGitというシステムでできることなのです。(Git≠GitHub)
ではGitHubはそんなGitを利用して何を提供しているか。
数多くある機能のうち、特にGitHubのGitHubたる部分をお話すると、
- Gitのソースコードの保管場所をオンラインに
- 自身の作成したソースコードを世界中に公開
- 公開されているソースコードに対して、世界中のだれもが改修を行える
ということです。
つまり、GitHubは「オープンソースソフトウェアをGitの仕組みを利用して管理するサービス」という面がとても強いです。(もちろん他の人にソースコードを公開しないようにもできますし、サービスの利用方法によっては法人用として使うこともできます。)
そして、数多くのオープンソースのプログラムがGitHubで管理されています。
オープンソースのプログラムを読むことはプログラマとしてステップアップをするための良い方法ですし、それどころか自分からライブラリを公開したり、既存のライブラリの改修に携わることができるのです。
まさに新しい世界への扉ですね☆
まとめ
というわけで、「GitHubとはなにか」について述べました。
以下は本記事のまとめです。(はじめに書いたもの)
- GitHubとは、「GitHub社が提供している」「Gitバージョン管理システムを利用する」「Webサービスである」。
- GitHubはGitを使った「ソースコードのバージョン管理をする」ために利用する。
- 「ソースコードのバージョン管理をする」と、「問題が発生した時の切り戻し」や、「複数人でのソースコード編集によるバッティング回避」に利用できる。
- GitHubは特に「オープンソースソフトウェアをGitの仕組みを利用して管理する」ということに対して強い。
GitHubはプログラマをやる上では避けては通れないサービスと思いますので、ぜひ登録しましょう。
と言いつつ私も最近まで(存在は知っていましたが)登録していなかったので、次回の記事では登録方法について書きたいと思っています!
かんそー:
まとめをはじめと終わりに書くのは冗長な気がしてかっこよくないですね。
結局必要なことしか書いてるつもりはないので目次をつけてはじめのまとめはなくそうと思っています。(長くても読んでもらうor飛んでもらう)
ただ目次を実装するにはもう少し時間がかかりそうですね。。。そのうちやります。
ちなみにGitHub、もうすぐ日本語対応のWebサイトが公開されるようですね。
(GitHub、日本語Webサイトを3月公開予定 | NEWS | Macお宝鑑定団 blog(羅針盤))
ただ正直プログラマをやる上で日本のみの知識でやるのはとてもキツいので、英語版の利用をしたほうがいいと考えています。私はそうしてみます。