GitHubを上手に使って開発スピードアップ。新人エンジニア向け基本解説
GitHubは、チームで開発を担うエンジニアたちにとっては必須といえるツールです。初心者では難しいバージョン管理を、間違いなく効率的に行えます。新人エンジニア・SVNメインの方向けにGitHubの基本的な機能や使い方を分かりやすく解説します。
目次[非表示]
- 1.エンジニアには必須 GitHubとは
- 1.1.『Git』を使ってバージョンを管理
- 1.2.Gitとは何だろう?
- 2.GitHubの使い方と基本的な流れ
- 3.ローカルリポジトリとリモートリポジトリの役割と意味
- 3.1.ファイルをGitのインデックスに追加『git add』
- 3.2.変更をローカルリポジトリに記録する『git commit』
- 3.3.ローカルリポジトリからリモートリポジトリに送信する『git push』
- 4.初めてのGitHub 登録の方法
- 4.1.アカウントを作成・登録する
- 4.2.料金プランを選択しメールを確認
- 5.『branch』(ブランチ)の意味と役割も覚えておこう
- 5.1.branchとは?
- 5.2.branchを作成する
- 5.3.branchへの『push』とbranchからの『pull』
- 5.4.branchのmergeと削除
- 6.初心者に扱いやすいGitHub Desktop
- 6.1.GitHub Desktopとは
- 6.2.GitHub Desktopの準備と使い方
- 6.3.GitHub Desktopのメリット
- 7.初心者こそ活用したいGitHub
エンジニアには必須 GitHubとは
開発プロジェクトでは、エンジニアのチームが連携してコーディングを進めることが必要です。プロジェクトの規模が大きくなるほどバージョン管理は難しくなりますが、『GitHub(ギットハブ)』を使えばスマートに解決できます。
エンジニアにとって必須とも言えるGitHubの概要を、『Git(ギット)』との関係も交えて見ていきましょう。
『Git』を使ってバージョンを管理
GitHubは、分散バージョン管理システム『Git』で作成・管理するソースコードを、インターネット上で公開・共有できるサービスです。
GitHub社が運営するサーバーにデータをアップロードすると、開発者はどこからでもWebブラウザ上でソースコードにアクセスできます。
公開されたソースコードは開発者が丸ごとダウンロードでき、それぞれの開発者が部分的に編集して、GitHub社のサーバー上でバージョンの閲覧・操作が可能です。
オープンソースソフトウェアのレビューや共同開発をはじめ、有料プランを選択すれば企業向けのプライベートな開発環境としても利用できます。
Gitとは何だろう?
Gitはバージョン管理システムの一種です。ユーザー個々のPCに丸ごとソースコードをダウンロードするため、サーバーが分散型であることから分散バージョン管理システムと呼ばれます。
Gitでは、一つの中央サーバーと複数のローカルサーバー(PC)でソースコードをやり取りする仕組みです。
それぞれのPCでバージョンが厳密に管理されたソースコードを編集できるため、中央サーバーへアップロードする際に誤って上書きするようなミスが生じません。
Gitで利用する中央サーバーをインターネット上のGitHub社のサーバーに置き換え、Webブラウザ上でソースコード・バージョンを簡単に閲覧・操作できるサービスがGitHubです。
■関連記事
通年開講プロエンジニア育成コース(Java1~3ヶ月)ー株式会社ジョブサポート
GitHubの使い方と基本的な流れ
Gitは分散バージョン管理に特化した開発環境で、GitHubはGit専用のホスティングサービスという関係です。GitとGitHubの共通仕様として、データは『リポジトリ(Repository)』に保存します。GitHubの基本的な使い方や流れを見ていきましょう。
データの保管場所となる『リポジトリ』を作成
まずはGitHubにアクセスし、データの置き場所である『リポジトリ(Repository)』の作成が必要です。リポジトリは倉庫、保管庫の意味で、ファイルやディレクトリを保管する場所となります。
GitHubにログインして『New Repository』を選択し、次の画面でリポジトリの名前の入力や、ソースコードの公開・非公開の選択をしましょう。
必要事項を入力して『Create repository』を選択すれば、『リモートリポジトリ(GitHubサーバー上のリポジトリ)』が作成できます。
続いてPCで、『mkdir(ディレクトリ作成)』コマンドと『cd(ディレクトリ移動)』コマンドでディレクトリ名を指定して『git init』コマンドを実行し、カレントディレクトリを『ローカルリポジトリ(PC上のリポジトリ)』に変換しましょう。
また、『git clone』コマンドでリモートURLを指定すると、リモートリポジトリをローカルリポジトリに複製できます。
ファイル作成・編集後、最終的にリポジトリに反映
Git・GitHubを使った開発現場では、リモート・ローカルともにリポジトリは作成(または複製)してから、ソースコードの作成や編集を行い、バージョン管理をしていくのが基本的な流れです。
行ったファイルの作成・変更・削除は、直接リポジトリに反映させるのではなく、まずGitの『インデックス』に追加します。インデックスとは、次の手順で変更内容を『コミット』するまでの一時的な保存場所です。
コミットとは、ファイル・ディレクトリの変更内容をローカルリポジトリに記録することを指します。コミットが完了したローカルリポジトリを、GitHub上のサーバーに送信すれば、リモートリポジトリにバージョン変更が反映されます。
Java短期講座(入門5日・基礎10日)ー株式会社ジョブサポート
ローカルリポジトリとリモートリポジトリの役割と意味
Gitで管理するPC上のリポジトリをローカルリポジトリ、GitHubで管理するGitHubサーバー上のリポジトリをリモートリポジトリと呼びます。それぞれのリポジトリの役割と意味や、基本的なコマンドを見ていきましょう。
ファイルをGitのインデックスに追加『git add』
Gitでは、ソースコードのバージョン変更をインデックス・ローカルリポジトリの順に記録してから、リモートリポジトリに反映します。
中央サーバーへのアクセス集中を避けられるため、大規模なプロジェクトでも効率的にバージョン管理を行えるのが、Git・GitHubを導入するメリットの一つです。
ソースコードを作成・編集したら、コミットの前段階として、ファイルの作成・変更・削除を『git add』コマンドでインデックスに追加します。git addコマンドでファイル名を指定すると、インデックスに変更内容が一時保存されます。
変更をローカルリポジトリに記録する『git commit』
インデックスに一時保存した変更内容は、『git commit』コマンドでローカルリポジトリにコミット(記録)します。変更内容が正しくコミットできているかどうかは、『git status』コマンドを実行するだけで確認可能です。
コミットが完了すればリモートリポジトリへの反映を行いますが、その前に『git remote add』コマンドでリモート名・リモートURLを指定し、リモートリポジトリの設定を行いましょう。
ローカルリポジトリからリモートリポジトリに送信する『git push』
ローカルリポジトリは、『git push』コマンドを実行するだけでリモートリポジトリに反映できます。Gitではこれをアップロードとは呼ばず、『プッシュ(押す)』と呼びます。
逆にリモートリポジトリをローカルリポジトリに反映させる場合、ダウンロードではなく『プル(引く)』という表現です。
開発者たちは作成・編集したソースコードをプッシュまたはプルし、GitHub上でバージョン管理を行いながらプロジェクトを進行させていきます。
■関連記事
オンライン・リモート講座(入門5日・基礎10日)ー株式会社ジョブサポート
初めてのGitHub 登録の方法
GitHubを利用するには、簡単なアカウント登録が必要です。基本的な機能は無料プランでも利用できますが、ビジネスでの利用なら高機能な有料プランをおすすめします。アカウント作成や料金プランの選択について見ていきましょう。
アカウントを作成・登録する
GitHubを利用するには、まずアカウント作成が必要です。GitHubのサイトにアクセスして、トップページの『GitHubに登録する』を選択しましょう。
はじめに必要な入力項目は、ユーザー名・メールアドレス・パスワードの3点です。入力が完了したら、料金プランの選択に移ります。
料金プランを選択しメールを確認
GitHubの料金プランは、『Free』『Team』『Enterprise』『GitHub One』の4種類です。Freeのみ無料で、その他は月額料金が発生します。
2020年4月の仕様変更から、Freeプランでもパブリック(公開)リポジトリ、プライベート(非公開)リポジトリ両方の利用が可能です。
ただし、ソースコードのオーナーになるなどの高度な機能は、有料プランだけで利用できます。プロジェクトに必要なプランを選んだら、『Finish sign up』を選択しましょう。
登録したメールアドレスに認証メールが届くため、手順に従ってユーザー認証を行えばアカウント登録は完了です。
『branch』(ブランチ)の意味と役割も覚えておこう
Git・GitHubが分散バージョン管理システムとしての真価を発揮するのは、『branch』(ブランチ/枝)を活用した場合です。branchの意味や役割、基本的な使い方を見ていきましょう。
branchとは?
branchは、枝分かれする複数のバージョン管理を、互いに影響することなく行える仕組みです。
たとえば、リリース版・機能追加・バグ修正のそれぞれを別のブランチで管理して、ブランチ同士を『マージ』(併合)することで一つのブランチにまとめ直せます。
ほかにも、メインのブランチと複数のサブのブランチを、並行して作成・編集する場合にも利用できます。それぞれの機能追加を別の開発者が担当しても、デバッグや修正に対応しやすいバージョン管理が可能です。
branchを作成する
ローカルリポジトリに最初のコミットを行う際、『master』という名前のブランチが自動生成されます。Gitはブランチ構造を基礎としており、簡単なコマンドで自由にブランチの追加が可能です。
『git branch』コマンドを実行すると、ブランチの一覧が表示されます。作業中のブランチは『* master』のように表示され、ひと目で把握できる仕様です。
続いて『git branch』コマンドで任意の名前を指定すると、masterから枝分かれしたブランチが作成できます。『git checkout』コマンドでブランチ名を指定するだけで、作業中のブランチの切り替えも可能です。
branchへの『push』とbranchからの『pull』
ローカルリポジトリからリモートリポジトリへ、ブランチ単位でプッシュもできます。
まずは作成したファイルをローカルリポジトリにコミットし、『git push』でリモート名とブランチ名を指定しましょう。これだけで指定したブランチがプッシュできます。
プッシュされたブランチのプルも簡単です。git checkoutコマンドでブランチ名を指定してから『git pull』コマンドを実行すると、リモートリポジトリのブランチがプルできます。
branchのmergeと削除
分岐したブランチをマージするには、『git merge』コマンドを使います。まずはgit checkoutコマンドで作業中のブランチをmasterに切り替え、マージしたいブランチ名をgit mergeコマンドで指定しましょう。
あとはgit pushコマンドでリモート名とmasterを指定すると、リモートリポジトリ上でマージが反映されます。
実際の開発現場ではあまり行わない操作ですが、簡単なコマンドでブランチの削除も可能です。git branchコマンドで『-d』オプションとブランチ名を指定するだけで、指定したブランチを削除できます。
■関連記事
フロントエンド(HTML・CSS・JavaScript)入門5日ー株式会社ジョブサポート
初心者に扱いやすいGitHub Desktop
GitとGitHubの組み合わせでは複数のコマンドを使い分けますが、コマンドを極力使わないGitHub Desktopでも同様の機能を利用できます。初心者にも扱いやすいGitHub Desktopについて、概要や導入方法を見ていきましょう。
GitHub Desktopとは
『GitHub Desktop』は、デスクトップ上で簡単にリポジトリの操作ができる、GitHub社の純正ソフトウェアです。GUIを採用しているため、基本的にはコマンドを手入力する必要がなく、マウスを使って直感的に操作できます。
エディタは好みのものを引き続き利用できるので、リポジトリのクローンやプッシュなどだけはGitHub Desktopで行う、という使い分けが可能です。
GitHub Desktopの準備と使い方
GitHub Desktopの公式サイトにアクセスすると、トップページに『Download for macOS(Windows)』というボタン・リンクが表示されます。
これをクリックすると、Macの場合はZIPファイルがダウンロードされます。解凍すると『GitHub Desktop.app』というフォルダができるため、フォルダごと/Applications内に移動しましょう。
Windowsの場合は、ダウンロードされるインストーラをそのまま起動し、インストールを完了させれば利用できます。
アプリケーションを起動すると、まずログインが必要です。アカウントを持っていない場合は、GitHub公式サイトで取得してからログインしましょう。
GitHub Desktopのメリット
GitHubはブラウザ上で操作しますが、GitHub DesktopはPC環境と統合されます。普段使っているアプリケーションで編集できるため、操作性はGitHubよりも快適です。
GitHubには、クローン(リモートからローカルへ複製)やフォーク(リモート内で複製)といった特有の機能があります。GitHubではクリックするだけでこれらの操作ができるため、GitHubより手間がかかりません。
また、GitHub Desktopは画像の差分表示にも対応しています。見やすいGUIで画像のバージョン管理ができることも、GitHub Desktopのメリットです。
初心者こそ活用したいGitHub
ソフトウェア開発では、複数の開発者がそれぞれの機能を分担してコーディングを行うことが一般的です。初心者では、バージョン管理まで意識して機能追加をするのは困難だと思います。
Git・GitHubではブランチを利用して自然に作業分担できるうえ、バージョン管理は容易です。仕様上、プッシュ時のバージョンの不正操作はエラーが起こるため、ミスの防止にもなります。
初心者こそGitHubを活用して、開発者間のやり取りのロスやケアレスミスをなくしましょう。