Web制作を含むシステム開発全般では、バージョン管理は必携ツールに数えられます。中でもGitとGitHubは広く普及しているツールで、さまざまな企業、プロジェクトで活用されています。
本記事のテーマはバージョン管理システムのGitと、そのホスティングサービスであるGitHubです。それぞれの違いや導入方法、簡単な使い方までまとめています。GitやGitHubを使ったことがない方にもご理解いただけるように、順を追って解説していきますね。
バージョン管理の基本とメリット
冒頭で、システム開発ではバージョン管理が重要だと述べました。具体的には、バージョン管理を導入するとどんなメリットが得られるのでしょうか?バージョン管理の基礎知識とともに、得られるメリットを4つにまとめてご紹介します。
バージョン管理とは?
システム開発では、プログラミングに区切りがあることが一般的です。機能ごとに開発を行ったり、バグ修正が進捗した段階でリリースをしたりするからです。この区切りを記録して管理をすることを、バージョン管理と言います。具体的には、誰がどの部分を、どのように修正したのかを変更記録として保存していきます。
バージョン管理は専用のツールを使うのですが、その中でも群を抜いて使われているのがGitなのです。Gitを代表とする分散型のバージョン管理システムの他、SubversionやCVSなどの集中型のバージョン管理システムも有名です。
バージョン管理のメリット
バージョン管理を導入することのメリットについて、4つのポイントにまとめました。
履歴がわかる
バージョン管理の一番のメリットは、プログラムの変更履歴がわかることです。複数人で開発している場合はもちろんのこと、自分一人でプログラミングをしていても修正内容をしっかりとは記憶しておくことは難しいです。
Gitなどのバージョン管理システムを使うと、下のような変更履歴が全て記録されることになります。
- 誰が変更をしたのか?
- どのファイルの何行目のどの部分が変更されたのか?
- 何のための変更なのか?
- いつ変更したのか?
- 前後のバージョンとの違いは?(差分)
任意のバージョンが指定できる
開発を進めていると、一からプログラムを作り直したい時や、特定のバージョンの不具合を修正することがあります。バージョン管理をしていると、即座に任意のバージョンに戻すことができます。
開発環境をセットアップするときも、バージョンを指定すればすぐにソースコードが揃うことになります。開発をスタートしたり、新しいエンジニアが入った時もスピーディに開発に取りかかることができるようになるのです。
コードとコメントが分けられる
プログラミングをしていると、機能や修正内容などのコメントを書くことがよくあります。こういったコメントが増えてくると、コードの可読性が落ちてしまいますし、ソースコードの管理が煩雑になってしまします。
バージョン管理システムを使うと、コメントに書いていた内容は基本的には全てコミットメッセージとして保存します。コメントを減らして、ソースコードを綺麗に保つことにつながるのです。
チーム開発が便利になる
後述しますが、バージョン管理はローカルリポジトリとリモートリポジトリを使い分けて行います。Gitのリモートリポジトリを提供しているサービスとしては、GitHubが最も有名です。GitHubなどのサービスを使うことで、ソースコードやバージョン管理情報が全て一元管理できるので、複数人での開発が格段にし易くなります。
Gitの基本と使い方
Gitの基礎知識と導入方法、簡単な使い方について解説していきましょう。
Gitとは?
» Git
Git(ギット)とは、バージョン管理システムのツールのこと。バージョン管理と言ったらGitというほど、代表的なツールです。バージョン管理はローカルで行うこともできますし、後述するようにGitHubなどのホスティングサービスを使ってリモートリポジトリを利用することも可能です。
Gitはシステム開発では一般的なツールなのですが、ビギナーにとっては少し取っつきにくいと思われていることが多いです。ただ、バージョン管理ならではのフローや専門用語が理解できてしまえば、すぐに馴染むことができるでしょう。
Gitを使った開発の流れ
Gitを使ってバージョン管理する時の流れは、次のようになります。Gitの操作で迷った時は、このフローを思い出していただければと思います。
cloneする
はじめに、共用のリポジトリからソースコードをcloneして、自分のパソコンに保存します。cloneとは、ソースコードをコピーすることを指しています。
開発を行う
ソースコードが準備できたところで、開発をスタートします。基本的には、キリがいいところまで開発を行ったら次のステップに移ります。
addする
変更を加えたファイルをaddしていきます。addとは、次のステップであるcommitの準備作業のことです。commitをするまでは、addは何回実行してもOKです。
commitする
区切りのいいところで、変更を加えたファイルをcommitします。commitすることで、その時点での変更内容がバージョン情報として保存されます。
pushする
commitが完了したところで、共用リポジトリにソースコードをアップロードします。Gitではこれをpushと呼んでいて、ここまでを一つの開発サイクルとしています。
Gitの導入方法
それでは早速、Gitを導入していきましょう。Gitの公式サイトにもインストール方法が紹介してあるので、併せてご覧いただければと思います。
ソースコードからインストールする方法もありますが、インストーラーをダウンロードして実行する方法が簡単です。
Windowsの場合
Windowsの場合は、下のリンクからインストーラーをダウンロードして実行してください。表示された手順に従っていけば、Gitがインストールできます。
Macの場合
Macの場合もインストーラーが用意されています。下のリンクをひらくと、Mac用のインストーラーがダウンロードされます。Windowsと同様に、インストーラーの手順に沿ってGitをインストールしていきましょう。
Gitの使い方
Gitの使い方です。ここでは、実際に開発を行う時のフローに沿って、基本的な使い方について見ていきましょう。
リポジトリの作成(初期化)
まずはリポジトリ作成の方法から。プロジェクトのルートディレクトリに移動して、下記のコマンドを入力します。
git init
これで、gitリポジトリの作成(初期化)が完了です。
commit対象として登録する
プロジェクトのファイルを、コミットの対象として登録します。下記のコマンドを実行すれば、プロジェクトの全ファイルがまとめて登録されます。
git add -A
ファイルごとに個別に登録させたい場合は、下のようにファイル名を指定してaddします。
git add (ファイル名)
commitする
addしたファイルを、commitします。これによって、変更を加えた内容がバージョンとして登録されることになります。
git commit
通常はcommit内容をコメントとして残すかと思います。下記のように、コメントを指定してcommitを実行します。
git commit -m (コメント)
pushする
commitした内容を共用リポジトリにpushしましょう。
git push origin master
その他のよく使うGitコマンド
その他の、よく使うコマンドについてもご紹介しておきましょう。
上の例ではローカルのプロジェクトをpushしましたが、共用リポジトリからソースコードをコピーしたい場合はcloneコマンドを使います。
git clone
現在のステータスを確認したい場合は、下記のコマンドを実行します。
git status
commitのログ(ユーザーや日時、コメント内容など)を確認したい場合は、下のコマンドを実行すればOKです。
git log
GitHubの基本と使い方
バージョン管理システムのGitについて見てきましたが、ここからはそのホスティングサービスであるGitHubについて解説していきましょう。
GitHubとは?
» GitHub · Where software is built
バージョン管理システムであるGitは、共用リポジトリを使ってバージョンを管理します。この共用リポジトリは、ローカルに配置することもできますし、リモートさせることも可能でした。
GitHub(ギットハブ)とは、このリモートにあたる部分を提供しているサービスのことです。前述したようにGitHubを使うことでチームでの開発が一気に捗りますし、数ある便利な機能を使うこともできるようになります。
Gitとは異なり、GitHubは有料のサービスです。下のように、利用できるプライベートリポジトリ数やユーザー数などに違いのある、4つのプランがラインナップされています。
料金 | 特徴 | |
---|---|---|
Free | 無料 | パブリックリポジトリのみ利用可能。 |
Personal | $7(月額) | 個人向けのプラン。利用できるプライベートリポジトリの個数は無制限。 |
Organization | $9(月額) | 組織向けのプラン。利用できるプライベートリポジトリの個数は無制限。 |
Enterprise | 要問い合わせ | 自前のサーバーやプライベートクラウドにホストするエンタープライズ向けのプラン。 |
GitHubの導入方法
それではGitHubを導入する方法について見ていきましょう。
アカウントを作成する
はじめに、GitHubのアカウントを作成します。下記のページに移動して、必要事項を入力。アカウントを作成してください。
リポジトリを作成する
アカウントが作成できたら、使用するリポジトリ(リモートリポジトリ)を作成しましょう。GitHubにログインしたのち、下記のリンクからリポジトリの作成ページをひらきます。
リポジトリ名や説明、リポジトリの種類(パブリック/プライベート)を選択して、「Create repository」ボタンをクリックします。
リポジトリの作成が完了すると、下のような画面が表示されるかと思います。青枠で囲ってある部分が、リモートリポジトリのアドレスです。
これでGitHubを使う準備が整いました。
GitHubの使い方
GitHubの使い方です。すでにリモートリポジトリは作成してあるので、ローカルからリモートに接続していきましょう。
リモートに接続する
リポジトリ作成の完了画面に、リモートのアドレスが表示されていました。青枠の部分ですね。そのアドレスをもとに、remoteコマンドを使ってリモートリポジトリに接続します。
git remote add origin https://github.com/(ユーザー名)/(リポジトリ名).git
pushする
あとは下のように、変更内容をリモートリポジトリにpushすれば完了です。
git push -u origin master
このコマンドを実行すると、ローカルでの変更内容がGitHub上のリモートリポジトリに反映されます。
GitHubと連携可能なサービス6つ
最後に、GitHubの便利な使い方として、連携可能なサービスをいくつかご紹介しておきましょう。下のリンクから、連携可能なサービスを探すことができます。
Slack
» Install Slack · Integrations Directory
コミュニケーションアプリとしてIT業界を中心に大人気のSlack。GitHubと連携させることも可能です。GitHubでのアクティビティ(commitやpull requestなど)が発生した時に、事前に指定したチャンネルにポストしてくれます。
HipChat
» https://github.com/integrations/hipchat
グループチャットサービスとして人気のHipChatです。GitHubでのアクティビティ(commitやpull request、issueなど)の通知を、指定したルームで受けられます。
Atom
» Install Atom · Integrations Directory
Web開発に特化したテキストエディタのAtomも、GitHubとの連携が可能です。そもそもAtomを開発したのはGitHubなので、連携できるのも頷けます。AtomにはGit関連のプラグインも多く、GitHubとの親和性も高いと言えます。
Cloud9
» Install Cloud9 · Integrations Directory
オンラインで使えるテキストエディタのCloud9。Cloud9上で開発したコードは、簡単にGitHubにpushすることが可能です。
Trello
» Install Trello · Integrations Directory
タスク管理ツールのTrelloです。GitHubでのアクティビティを、Trelloのカードとして登録していくことができます。Trelloでプロジェクト管理を行う場合は、両者の連携は必須でしょう。
JIRA
» Install JIRA Software · Integrations Directory
Atlassianが開発したプロジェクト管理ツールのJIRA。Slackと連携することで、指定したチャンネルにアラートを飛ばすことができます。通知を受けるイベントを細かく設定することも可能。
あとがき
GitとGitHubの基礎知識や導入方法、基本的な使い方についてまとめました。IT分野では業界標準とも言えるサービスなので、基本的な使い方は身につけておくとよいでしょう。
また記事内では取り上げませんでしたが、GitHub以外にもGitのホスティングサービスはあります。プライベートリポジトリの数や使える機能、料金プランなどに違いがあるので、ケースバイケースで最適なサービスを選んでいくとよいでしょう。