最近、プログラマー界隈またはそれ以外でも「GitHub」という単語を見かけることが多いのではないかと思います。例えば、Microsoftが買収しただとか、日経が「GitHub」のことを「設計図共有サイト」として記事に記載しただとか、直近だとプライベートリポジトリが無料化されたとか。
japan.zdnet.com
www.itmedia.co.jp
gigazine.net
そんなこんなで色々話題になっている「GitHub」ですが、実際にどんなものなのかを知らない、または調べてみたけどよく理解できなかった人が多いかと思います(自分も最初はよくわからなくて放置してました...)。なので、この記事では「GitHub」の使い方をタイトル通り、「0から」でも理解できるように説明していきます。なので、最初の方は専門用語(リポジトリとか)をあまり使わずに頑張って説明します。
今回の記事作成する際に参考にした本です。
GitHub実践入門──Pull Requestによる開発の変革 WEB+DB PRESS plus
「GitHub」入門への道
まずは「Git」
「GitHub」を知るためには「Git」を知らないといけません。
え?同じじゃないの?と思うかもしれませんが違います。
「Git」はバージョン管理システムのひとつです。
このように、プログラムの変更点をバージョン管理システムが記録しており、バグが発生してどうしようもなくなった時などに、バグのないバージョンに戻すことができます。
他にも、新しい機能を実装したいときに、他の人の作業の邪魔にならないように、今のバージョンから分岐することで、他人に迷惑かけることなく自由に開発を進めることもできます。
この辺りのことは次回くらいに詳しく説明しますので、今はそういうものかといった理解でOKです。
これで「Git」はなんとなく理解できたかと思います。
では「GitHub」とは何なのでしょうか。
「GitHub」とは?
「GitHub」は
「Git」をWeb上でかつ、便利に使えるようにしよう!といったWebサービス
です。
「Git」をWeb上で使えることで、より一層プログラムを他人と共有できるようになり、複数人での開発や、プログラマ同士の交流が円滑に進めることができます。
また、「GitHub」は「Git」をただ単にWeb上で使えるようにしたわけではなく、+αの要素を加えています。
その +α の要素が「GitHub」が人気の理由であり、「GitHub」を使うべき理由にもなっています。
その +α がどのようなものなかを説明していきます。
オープンソースにできる
これは人によっては短所として取れるかもしれませんが、「GitHub」上で管理してるプログラムはオープンな状態、つまり全世界に公開している、にすることができます。
最近は、自分(個人でも企業でも)の開発したシステムをオープンな状態にすることが流行っています(*個人の感想です)。そういったシステムの有名どころを集めたのが以下のリストです(こいつらは使いこなす必要はありませんが、一般常識として名前と概要くらいは知っていて損はないはず)。
- Tensorflow
- node
- jQuary
ちなみに、ソースコードを公開しているシステムのことを、OSS(オープン・ソース・ソフトウェア)と呼びます。
また、ここからはプログラムのことをソースコードと呼ぶようにします。
Pull Request(プル・リクエスト)
できるだけ専門用語を使わず説明します!!と最初に言っておいて申し訳ないのですが、「GitHub」最大の特徴なのでこれだけは説明させてください...。
Pull Request(プル・リクエスト)とは何なのかというと、他人のソースコードに対して、自分が変更を加えたものを取り込んでくれませんか?と要求(リクエスト)することを言います。
「GitHub」では、ソースコードのどこを改良したのかという情報がわかりやすく確認できるようになっており、また、チャットの機能もあるので、改良点についての議論などを交わすこともできます。
この機能のおかげで遠く離れた人と一緒に開発を進めることができます。
また、OSSならば有志が考え開発した機能を盛り込むこともできるので、そのシステムはどんどんブラシュアップされていくわけです。
「GitHub」入門(登録)
ここからは、いよいよ「GitHub」の登録を始めていきましょう。
まずは「Git」(ふたたび)
先ほど説明した通り、「GitHub」は「Git」を便利に使うためのサービスです。
なので、「GitHub」に登録する前に、「Git」をパソコンにインストールする必要があります。
それぞれのOSごとのインストールの仕方を説明しようかと思いましたが、面倒くさい長くなってしまうので、サイトの紹介をしておきます。
「GitHub」の登録
「Git」がインストールできたので、やっとですが「GitHub」に登録してみましょう。
アカウント情報を入力
以下のサイトにアクセスしてアカウントを作成していきましょう。
サイトを開くとこのような画面が表示されると思います。
この画像の赤い四角の箇所に
- アカウントのユーザー名
- 登録に使うメールアドレス
- アカウントのパスワード
を入力しましょう。
登録してからでも変更はできますので、好きに決めてください。
プランの選択
すると、アカウント登録のために、簡単なパズルを解かされます。
問題ないと判断されたら、プランの選択画面に移行するかと思います。
ここでは有料か無料のプランの選択ができます。内容の違いとしては
無料
- プライベートリポジトリに関しては共同編集者は3人まで
有料
- 共同編集者も無制限
- 色々な便利ツールの使用が可能
大体こんな感じです。
リポジトリというのは、「GitHub」で管理するプロジェクトのことだと取り敢えずは理解しておいてください。
まあよっぽどのことがない限りは無料プランで問題ないはずです。
SSH Keyと公開鍵の登録
あともう少しです。
「GitHub」はWeb上でリポジトリ(「GitHub」上でのプロジェクト)を管理するので、「アクセス認証」ということをしなければなりません。
「GitHub」ではアクセス認証はSSHを用いた公開鍵認証で行います。
SSHとか公開鍵って何ぞや?と思った方は以下のサイトを参考にしてください。
knowledge.sakura.ad.jp
基本的にその辺りのことはわかってなくても大丈夫ですので、ここから先の作業は機械になったつもりで進めていくと良いかもしれません。
SSH Keyの登録
まずは、PCの上で以下を実行してください。(Linux or Mac は端末、WindowsはGitBash)
ssh-keygen -t rsa -C "登録したメールアドレス"
"登録したメールアドレス"にはその名の通り、自分がアカウントに登録したメールアドレスを入力してください。
すると
(/Users/あなたのディレクトリ/.ssh/id_rsa):
と出てくるので Enter を押しましょう。
次に
Enter passphrase (emty for no passphrase): Enter same passphrase again :
と出てくるので、自分がわかりやすい & 特定されにくいパスワードを入力しましょう。
確認用のためにもう一度入力してくれと言われているのでもう一度入力してください。
公開鍵の登録
これで最後です。
「GitHub」のページの右上に自分のアカウントのロゴ(初期は勝手に登録されてる)があると思うので、それをクリックして、Settingをクリックしましょう。
そしたら以下のような画面が表示されます。
上の画像のように、左のタブから
①「SSH and GPG keys」をクリック
②「New SSH key」をクリック
次は以下のような画面が表示されます。
公開鍵とそのタイトルを入力しろとのことです。
タイトルは何でも良いのですが、公開鍵は先ほど作ってもらったものを使用します。
$ cat ~/.ssh/id_rsa.pub ssh-rsa <公開鍵の内容> 登録したメールアドレス
「ssh-rsa <公開鍵の内容>」の部分を「Key」の箇所にコピペして、「Add SSH key」をクリック。
上手く登録できれば登録したメールアドレスにメールが来ます。
最後に、動作確認をしてみましょう。
ssh -T git@github.com
接続を続けますか?と英語で聞かれるので、「yes」と入力してください。
以下のように表示されればOKです。
Hi hirocastest! You're successfully authenticated, but GitHub does not provide shell access
さいごに
思ってたよりも長くなりましたが、これで「GitHub」で開発を進める準備ができました。
次回は、実際にリポジトリ(GitHub上でのプロジェクト)を作成して、コードの公開までをしていきます。
今回の記事作成する際に参考にした本です。