GitHubとは、Gitの仕組みを利用してソースプログラムなどを保存・共有できるようにした、プログラマー向けの支援サービスです。ソフトウェアやアプリケーションの開発では、複数のメンバーが同時に作業を行う場面が多々あります。複数のメンバーの中で、誰が、いつ、何を変更したのか詳細に分かるバージョン管理機能を備えたGitHubは、開発現場で利用されています。GitHubを使えることが前提条件という案件も多いほどです。この記事ではGitHubの基本的な内容やメリット、専門用語、使い方などを説明します。
目次
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
GitHub(ギットハブ)って何?人気の秘密とは
GitHubとは、ソースプログラムなどのバージョン管理ができるWebサービスです。
例えば、GitHubに各プログラマーがソースプログラムをアップすると、ほかのプログラマーにソースプログラムを共有したり、履歴を残しながら作業したり、変更を加えたりできます。
2008年に公開されてから、1年も経たないうちにプログラマーの間で爆発的な人気を誇るようになりました。今でも多くの開発現場で使われているサービスであり、IT業界にかかわらず、経営者やデザイナーなどにも活用されています。
GitHubは企業や個人問わず、無料で利用可能です。無料の「Free」プランと有料の「Pro」プランがありますが、2020年4月以降、有料プランのみで利用できた主要機能が無料プランでも使えるようになりました。なお、無料プランではストレージ使用量や共同編集者の登録数などに制限がかけられていることに加え、以下3つの機能は利用できません。
- 稼働プロジェクトに影響を与えずに、開発が行える保護ブランチ機能
- 変更をほかのプログラマーに通知するプルリクエスト機能
- リポジトリ内のコード責任者を設定できるコードオーナー設定
ただし、スキルや経験のあるプログラマーであれば、無料プランでも運用技術で十分にカバーできます。これからGitHubの利用を検討している方は、まず無料プランから始めてみて、上記の制限や機能が使えないと困った場合に有料プランを検討すると良いでしょう。
【注目】GitHubの2つの特徴
プログラマーにとって欠かすことのできないサービスになったGitHubには、大きく2つの特徴があります。以下では、GitHubの特徴について詳しく解説します。
●ソフトウェアのバージョンを管理できる
GitHubに登録したソースプログラムは、複数世代のバージョン管理ができます。例えば、変更点に対して「いつ」「誰が」「どんな目的で」「何を編集したのか」を記録しているため、忘れた頃に確認をしてもわからなくなることがありません。
また、記録の確認によりバグの修正や機能追加、フィードバックなどを素早く簡単に行うことができるため、複数人で開発する際の開発効率が大幅に向上します。変更したソースプログラムを過去の任意のバージョンに復元したり、現在と過去のファイルの差分を把握して簡単にレビューしたりすることも可能です。
●Gitよりも具体的な修正内容を把握できる
Gitとは、バージョン管理を行うためのシステムのことをいいます。
逆にGitHubは、Gitをクラウド上で利用できるようにしたサービスのため基本的な機能に変わりはありませんが、クラウド上でGitを用いたバージョン管理をできるようにしたり、Gitにはない便利な機能が追加されたりしています。
また、Gitよりも具体的に修正内容を把握することができるため、複数人でコミュニケーションを取りながらファイルを編集したり、レビューや意見を出し合う場面で利用できたりします。
GitHub導入における3つのメリット
ここではGitHubを検討している方向けに、導入における3つのメリットを詳しく解説します。
- 開発業務の効率を改善できる
- 検索機能が役立つ
- コードファイルの管理や非公開ファイルの保存ができる
ソフトウェアのバージョン管理ができるGitHubの特徴を紹介してきました。GitHubを活用すると、開発業務の効率化につなげられます。なぜ効率化できるのかについて、見ていきましょう。
●開発業務の効率を改善できる
GitHubの大きなメリットは、開発業務の効率が上がることです。ソースプログラムの共有を簡単に行えるため、管理また全体の整合性が取りやすくなります。ソースプログラムの変更後にバグが発生した際は、変更履歴を確認して原因の特定につなげることで、バグに対して迅速に対処することが可能です。
また、機能や変更内容ごとに作業スペースを分けられるため、同時に複数の作業を行えます。例えば、作業Aと作業Bを同時に作業していて、作業Bの機能が不要になった時、従来であれば作業Aと作業Bの編集したソースプログラムが混ざってしまい、作業Bで変更したソースプログラムを探しながら変更前に戻す手間がかかりました。
一方で、GitHubで作業スペースを分けていれば、作業Bの作業スペースを削除するだけで完了です。GitHubの導入によって、より生産的な開発業務の実現が可能になります。
●検索機能が役立つ
GitHubでは、ファイルやプロジェクトを検索する機能を提供しています。2020年4月以前は、プライベートリポジトリの利用は有料プランだったため、ただ自身のコードをバックアップしたいだけのプログラマーは、公開型のリポジトリを利用していました。
そのためGitHubで検索をすると、公開型のリポジトリに保存されている山のようなファイルから、参考にしたい物を見つけられます。現在は無料プランでも無制限にプライベートリポジトリが利用できるようになりましたが、今でも自身のコードを公開している方も多いです。
ローカルにダウンロードしなくても閲覧できるため、手軽にいつでも閲覧できます。コーディングの仕方がわからない時や、使用例が知りたい時、興味のある技術を使っているプロジェクトを見つけたい時などに役立ちます。また、多くのソースプログラムを参考にすることでスキルアップも狙えるため、興味があるプロジェクトは積極的に閲覧してみましょう。
●コードファイルの管理や非公開ファイルの保存ができる
GitHubは無料プランでも、プライベートリポジトリや公開型のリポジトリを無制限で利用できます。自身のコードをバックアップしたいだけの場合は、プライベートリポジトリへ保存すると非公開で管理可能です。
プロジェクトや複数のプログラマーで共有したい場合は、公開型を利用することで管理できます。
公開型は世界中の方とソースプログラムを共有することができるため、様々な方からアドバイスをもらったり、ともに学び合ったりすることで、より良い品質のコードが作れるようになります。
公開型とプライベートリポジトリをうまく使い分けて利用しましょう。
GitHubを活用するうえで役立つ知識
GitHubを実際に使う前に知っておきたい用語を解説します。
- リポジトリ
- クローン
- ブランチ
- コミットとプッシュ
- フォーク
- プルリクエスト
- マージ
「ブランチ」「リポジトリ」などの用語について事前に把握しておくことで、すぐにGitHubを活用できるでしょう。
●リポジトリ
バージョン管理を行いたいファイルやディレクトリを、記録・管理する場所のことをリポジトリといいます。リポジトリには、「ローカルリポジトリ」ならびに「リモートリポジトリ」の2種類があり、それぞれに重要な役割があります。
ローカルリポジトリとは、自分のPC上のリポジトリです。プログラマーがそれぞれのPC上で作業を行えるように、自分の手元のPCに配置します。例えば、普段の作業はローカルリポジトリを利用すると、プロジェクトに影響を出さずに作業を進められます。
対してリモートリポジトリとは、専用のサーバーなどに配置して複数人で共有するために利用するリポジトリです。サーバーに配置することで、複数人またチーム単位でリポジトリを共有できます。ローカルリポジトリで編集したソースプログラムをリモートリポジトリにアップロードすることで全員に共有することが可能です。
●クローン
クローンとは、リモートリポジトリを自分のPC上にコピーする機能です。ほかのプログラマーが変更を行ったリモートリポジトリを、まるごとコピーして自分の手元で作業を進められます。
●ブランチ
ブランチとは、変更履歴を分岐させて記録する方法です。分岐したブランチは、ほかのブランチの影響を受けないため、複数のプログラマーが同時に機能追加やバグの修正などの作業を進められます。
具体的には、複数のプログラマーが並行作業できるイメージです。メインのブランチから自分が作業をする用のブランチを作成して作業を行い、終わったらメインのブランチに変更を取り込むという手順です。この手順で、ほかのプログラマーの作業に影響を受けないよう作業を進められます。
●コミットとプッシュ
コミットとは、ローカルリポジトリに変更を反映させることです。コミットしたタイミングで、履歴を残せます。
一方のプッシュとは、ローカルポジトリの内容をリモートリポジトリに反映させることです。
コミットとプッシュを行った時点で、ソースプログラムの変更が同期・確定されます。
●フォーク
フォークとは、ほかのプログラマーのリポジトリをコピーして編集できる機能のことです。
自分に編集やアクセス権がないリポジトリを、自分のローカルに取り入れられます。フォークで取り入れたファイルを編集したとしても、元のリポジトリに影響を与えることはありません。
●プルリクエスト
プルリクエストとは、ローカルリポジトリでの変更をほかのプログラマーに通知する機能です。例えば、機能の追加や改修など、ソースの内容をレビューやマージを行う担当者に通知する際に利用します。
GitHubのプルリクエストを使用すると、ソースプログラムの変更箇所が分かりやすく表示されるため、ソースレビューの作業の効率を上げられます。
●マージ
マージとは、前述のプルリクエストを受け取ったレビューやマージ担当者が、ほかの方の変更を自分のリポジトリに取り入れる機能です。マージ作業は、複数のプログラマーがかかわるプロジェクトにおいて重要な工程です。GitHubを利用することで、安全かつ迅速にマージを行えます。
【解説】GitHubを使うまでの準備について
次にGitHubの基本的な使い方を紹介します。使い方の手順は以下のとおりです。
- 社員の個人アカウントを作成する
- ソースプログラムを保存するリポジトリを準備する
- 社内ファイルを作成し編集する
●社員の個人アカウントを作成する
まずは個人アカウントを作成します。GitHub 公式ホームページから作成できるため、まずはアクセスしましょう。
「Sign up」ボタンをクリックしたら、ユーザーネーム、メールアドレス、パスワードの順に入力していきます。ユーザーネームに関して、すでに登録されている名前は使えないため注意しましょう。
お知らせメールの受取確認などの必要な入力や選択を終えたら、エントリーコードの入力を求められます。入力したメールアドレス宛にエントリーコードが書かれたメールが届いているため、確認して入力してください。
「Welcome to GitHub」が画面に表示されたら、アカウントの登録は完了です。
●ソースコードを保存するリポジトリを準備する
次にGitHubにログインした状態で、リモートリポジトリを作成します。
左欄にある「Create repository」ボタンをクリックしてください。リポジトリ作成画面が表示されるため、「Repository name」にリポジトリ名を入力します。試しに、「test」でリポジトリを作ります。
次の「Description」は任意項目です。必要であれば、リポジトリの説明を入力しましょう。
続いて、作成するリポジトリの種類を選択します。公開するリポジトリであれば「Public」を選択して、非公開にするリポジトリであれば「Private」を選択しましょう。
「Add a README file」では、リポジトリの中にあらかじめシステムの概要や、ツールの使い方などの説明を記述するREADMEファイルを作成しておく場合にチェックを入れます。後からREADMEファイルの追加は行えるため、決められない際はチェックを入れなくても問題ありません。
「.gitignore」は、GitHubで管理したくないファイルやディレクトリを指定するための設定のため、最初は「None」のままにしましょう。最後に「Choose a license」でライセンスの選択を行います。リポジトリにオープンソースライセンスを含める場合は設定しますが、ここでは「None」のままにします。
すべての設定を終えて「Create repository」をクリックすると、リポジトリの作成は完了です。次の遷移先の画面で、リモートリポジトリのアドレスが表示されています。後で必要になるため、メモに控えておきましょう。
●社内ファイルを作成し編集する
まずはPC上にローカルリポジトリを作成します。Windowsの場合はPowerShell、Macの場合はターミナルで行います。
$
mkdir test
$ cd test
「mkdir」でディレクトリを作成しており、「cd」で指定したディレクトリに移動しています。続いて、次のコマンドを実行してローカルリポジトリを作成しましょう。
$ git init
このコマンドでエラーが出ると、Gitがインストールされていない可能性があります。Gitがインストールされているか確認しましょう。以下のような文言が表示されたら、ローカルリポジトリの作成は成功です。
Initialized empty Git repository in ~
続いて、ローカルリポジトリにファイルを作成してみます。ここでは先程作成したディレクトリ「test」にテキストファイルを作成します。
$ vi test.txt
テキストファイルの中身は、適当に「テスト」などの文言を記述しておきましょう。テキストファイルの編集が終わったら、次のコマンドで作成したテキストファイルをローカルリポジトリにコミットします。
$
git add test.txt
$ git commit -m “add new file”
コミット前に「git add」でテキストファイルをインデックスに追加します。インデックスに追加したファイルがコミットできるようになるため、忘れずに「git add」コマンドを実行しましょう。
最後にリモートリポジトリへプッシュを行います。GitHubでリポジトリを作成した際に、メモに控えたアドレスを用意してください。次のコマンドでプッシュ先のアドレスを指定します。
$ git remote add origin メモに控えたアドレス
続いて、「git push」コマンドを実行します。
$ git push origin master
ユーザーネームとパスワードを聞かれたら、GitHubで登録した内容を入力します。これで、リモートリポジトリへ反映完了です。最初のうちは慣れずに苦労するかもしれませんが、慣れるとすぐに使いこなせます。何度も使うことで、GitHubに慣れていきましょう。
ここまでGitHubの基礎情報をはじめ、メリットや用語の解説、使い方を説明してきました。GitHubは、ソースプログラムのバージョンを管理できるWebサービスです。複数人での開発がスムーズになることもあり、GitHubを利用している開発現場が増えてきています。作業の効率化のためにGitHubの利用を検討しましょう。
【注意!】GitHubにもデメリットやリスクがある
特徴やメリットからみても、便利なGitHub。しかしデメリットやリスクも存在します。
デメリットは学習や教育コストが高いこと、プロジェクトや案件にあった運用設計するには時間がかかる場合があることなどが挙げられます。
一方、リスクとはGitHubの利用は個人のITリテラシーに依存することです。ある開発担当者のITリテラシーが乏しかったために、委託開発を行った企業のシステムをGitHubにアップロードしてしまい、情報漏えいしてしまった事例もあります。
GitHubは便利ではありますが、企業の体質や社員1人ひとりのITリテラシーの有無によって、「GitHubの本領を発揮できない」「トラブルにつながる」といったこともあり得ます。
規則やルールを設ける、リテラシー教育を行う、といったGitHubを利用するための体制を整えることをおすすめします。
GitHubを利用した開発を行うには、外部に発注するのも一つの手です。しかし、数えきれない開発会社の中から自社に合った会社を探すには時間も手間もかかってしまうでしょう。開発会社を探す際は、開発パートナー選定支援サービスの「発注ナビ」がおすすめです。発注ナビはシステム開発会社に特化したサービスです。業界を熟知した専門スタッフがしっかりとヒアリングしたうえで、全国5,000社の開発会社からマッチする会社を選んでくれます。ご相談から見積もりまで完全無料なため、ぜひお試しください。
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
■システム開発に関連した記事