この記事では、見方も交え、GitHubの使い方をわかりやすく解説します。
GitHubの使い方がわからない…
何から触ればいいんだろう?
GitHubは、ソースコードやデザインデータなどをオンライン上で保存、共有できるサービスです。Git(バージョン管理システム)を利用したプラットフォームであり、複数の開発者が協力してひとつのプロジェクト内で開発するのをサポートします。
開発では欠かせないGitHubですが、プログラミング学習を進めていく中で、初めてGitHubということばを見聞きした人も多いはず。そして、実際どんなときにどのように使うのか、よくわからない方もいるのではないでしょうか。
本記事では、GitHubに関連する基礎用語や基本的な使い方を、初心者にもわかりやすく解説しますので、ぜひ参考にしてください。
GitHubの使い方に関しては次の動画でも解説しているので、よろしければご覧ください。
GitHubとは
GitHubとは、バージョン管理システム(Git)をベースにした、プログラムのバージョン管理をサポートするWebサービス。複数人によるコードの編集や変更履歴をそれぞれ記録し、過去のバージョンに戻したり、コードの変更前後を比較したりできる。オープンソースで利便性があるだけでなく機密性が高く安全に管理できるため、多くの企業がプロジェクトを進める際に活用している。
GitHubについてより詳しく知りたい人は、次の記事を参考にしてください。
Gitとは
Gitとは、プログラムやデザインデータを記述したソースファイルを管理するための分散型バージョン管理システム。Gitは、ファイルの変更履歴をすべて記録・追跡し、管理を容易にする。複数人での共同作業を効率化し、各作業者がローカルリポジトリ(個別の保存先)を所持することで、ひとつのプログラムを個々が独立して変更できる仕組みを提供している。
Gitについてより詳しく知りたい人は、下の記事を参考にしてください。
- GitHubはGit(バージョン管理システム)を利用したサービス
- GitHubにはローカルリポジトリとリモートリポジトリがある
- GitHubを活用すれば複数人で効率よく開発が可能
使う前におさえておきたいGitHubの基礎用語
GitHubを効率よく使用するには、いくつかの用語の意味を理解する必要があります。初めに覚えておくべき用語は、次のとおりです。
また、次の記事ではGitHubの入門方法を詳しく紹介しているので、あわせて参考にしてください。
→ 完全初心者向けGitHub超入門!使い方と3つの学習方法を紹介
ローカルリポジトリ
ローカルリポジトリとはGitHubで共有するためのファイルを保存する場所で、自分のパソコン内に存在します。
開発者は、各自のローカルリポジトリで行った作業内容をリモートリポジトリにアップロード(プッシュ)することで、他の開発者と更新内容を共有できます。
リモートリポジトリ
リモートリポジトリは、WebサービスであるGitHubに存在するファイルの保管場所です。
リモートリポジトリにメインソースコードのファイルがあり、ローカルリポジトリの更新内容を上書きできます。
コミット
コミットとは、作成したファイルや更新情報をローカルリポジトリに登録する操作のことを指します。
ファイルを更新して保存すれば変更した内容が保存されますが、Gitに変更内容を登録するためには、必ずコミットを行う必要があります。
ローカルリポジトリにコミットする作業は特殊であるため、イメージが湧きにくい人もいるはずです。そこで次の例を読んでイメージを掴んでみてください。
学校の図書館で新しい本が入荷しました。しかし、入荷しただけで目録に登録していなければ、新しい本があることは誰にもわかりません。そこでインデックス(目録)にコミット(登録)することで、新しい本があることを外部へ知らせることが可能となります。
そのため、ローカルリポジトリでファイルを編集した後は最後に必ずコミットを実行するようにしてください。
プッシュ
プッシュとは、ローカルリポジトリで更新したファイルをリモートリポジトリにアップロードする操作です。
ファイル更新時にプッシュすると、ローカルリポジトリにコミットされた変更が GitHubのリモートリポジトリに送信されます。
チームで進めるプロジェクトのファイルを自分のパソコンで変更したときは、ほかのユーザーが更新されたファイルにアクセスできるように GitHubにプッシュする必要があります。
ブランチ
ブランチ(branch)とは1つのプロジェクトを分岐させることで、チーム内の機能追加、バグ修正など、ファイルやディレクトリの変更・更新を同時進行できるようにした機能です。
分岐したブランチは他のブランチへ影響を与えないので、同じローカルリポジトリでの並行作業が可能になります。
masterブランチ
masterブランチとは、リポジトリに最初のコミットを行う際に作成されるブランチのことです。2回目以降のコミットは、ブランチを切り替えるまでmasterブランチに追加されていきます。
GitHubを使ったチーム開発は、masterブランチを作成して行います。そもそも、親元のmasterブランチがないと、分岐したブランチを使えません。
なお、プログラミングを学びたい気持ちはあるものの、どの言語が自分にあうのか、どう学習を進めればいいのかなどがあいまいな人は「プログラミング学習プラン診断」をお試しください。
かかる時間は1分ほど。4つの質問に答えるだけで、あなたにあう言語や学習プランを診断してもらえます。
効率よくプログラミングを学習したい人は、ぜひ一度お試しください。
\ 4つの質問に答えるだけ /
マージ
マージとは、あるブランチで行った変更・更新の記録を別のブランチに適用することです。例えばバグ修正したブランチの記録を、機能追加を行ったブランチに適用することが可能です。
ブランチで行った作業内容をmasterにマージすることで、複数の更新情報をプロジェクトに反映できます。
なお、GitHub のリモートリポジトリでマージを行ったら、結果をローカルリポジトリへ反映する必要があります。
クローン
GitHubのローカルリポジトリで作業をしているとき、このローカルリポジトリ自体をローカルマシン上にコピーして配置することが可能です。この操作をクローンと呼びます。
普段、パソコン上でフォルダをコピーするのと動作は同じです。コピーしたローカルリポジトリで、ファイルの更新作業やリモートリポジトリにプッシュすることも可能です。
プルリクエスト
プルリクエストとは、ローカルリポジトリにおける変更をほかの開発者に通知する操作のことです。
具体的には、機能追加や改修、作業内容のレビューを受けるとき、ほかの担当者が開発するファイルとマージするときに通知します。
ソースコードの変更箇所をわかりやすく表示させて、チームメンバーからフィードバックをもらうことも可能です。
なお、ITの仕事に興味はあるものの、どの職種が自分にあうのかわからない人もいますよね。そんな人は「ITキャリア診断」をお試しください。
かかる時間はたったの1分。5つの質問に答えるだけで、自分にあうIT職種を診断してもらえます。
自身に適した職種が知りたい人は、手軽に試してみると良いですよ。
\ 5つの質問に答えるだけ /
インデックス
インデックスとは、ファイルの保管場所にコミットするためのファイルを登録することです。
ファイルの更新内容をプッシュすると、リモートリポジトリのファイル内容は直接上書きされるわけではありません。
ファイルの更新情報は、まずインデックスに登録された後に、リモートリポジトリに保管されます。
【ダウンロード編】GitHubの使い方
ここからは、GitHubを使うための事前準備、ダウンロード方法を4つのステップにまとめて解説します。
- STEP1:Gitをインストールする
- STEP2:GitHubでユーザー登録する
- STEP3:リモートリポジトリを作成する
- STEP4:ローカルリポジトリを作成する
今回は、WindowsOSを使用した際の操作手順を、画像を用いて解説します。
STEP1:Gitをインストールする
まず、GitHubを使うためには、Gitをパソコンにインストールする必要があります。
Gitのインストールと初期設定の方法はWindowsとMacとでほぼ共通しており、いずれもインストーラーのダウンロードはGitの公式サイトで行います。
なおMacの場合は、公式サイトにアクセスするだけで自動でインストーラーをダウンロード可能です。
Gitのインストール方法について、以下の記事でOSごとに詳しく解説しているので参考にしてください。
→ Gitをインストールしてみよう!Windows/Macどちらも丁寧に解説
STEP2:GitHubでユーザー登録する
まずはGitHub公式サイトにアクセスして、ユーザー登録をします。
公式サイトのトップページで、Emailアドレスを入力し「Sign up for GitHub」をクリックします。
下の画面に遷移するので、「Email」「Password」「username」をそれぞれ入力し、問題なければ「Continue」をクリックして進めていきます。
次に、登録者がロボットでないことを証明するために、提示された質問に回答しましょう。
問題なく回答できれば画面が次に遷移するとともに、登録したEmailアドレスに認証メールが届くので、認証コードを確認して入力してください。
認証コードの入力が成功すると、GitHubのログイン画面へ自動的に遷移します。登録したEmailアドレスとパスワードを入力して、「Sign in」をクリックしてください。
サインインに成功したら、パーソナライズ用の質疑応答へ進みます。パーソナライズする必要がない人は、画面下部にある「Skip personalization」をクリックすればスキップが可能です。
GitHubのダッシュボードページが表示されれば、ユーザー登録からログインまでは完了です。
STEP3:リモートリポジトリを作成する
次に、GitHub上のリポジトリ(リモートリポジトリ)を作成する方法を解説します。初めてリポジトリを作成する際は、画面左側にある「Create repository」をクリックしてください。
次の画面で「Repository name」を入力します。「Description」にはプロジェクトや保管するファイルの内容を任意で入力、「Public(公開)」「Private(非公開)」のいずれかを選択しておきます。
最後に、一番下にある「Create repository」をクリックすれば、GitHub上のリモートリポジトリが作成されます。
作成が完了すると、リポジトリのアドレスが表示されます。このアドレスは、自分のパソコン(ローカル環境)からリモートリポジトリにアクセスする際に使用します。
STEP4:ローカルリポジトリを作成する
リモートリポジトリの作成が完了したら、ローカルリポジトリ(自分のパソコン内)を作成します。
まずは、スタートメニュー欄にある「Git Bash」を起動します。
Git Bashが起動したら、ターミナルを使って「ディレクトリの作成」および「ディレクトリの移動」を行います。
実行するコマンドの順番は次のとおりです。
$ mkdir github (githubという名前のフォルダを作成する)
$ cd github (githubフォルダに移動する)
$ mkdir pushtest (pushtestという名前のフォルダを作成する)
$ cd pushtest (pushtestフォルダに移動する)
「pushtest」フォルダにいる状態で、「git init」コマンドを使用し、「pushtest」フォルダをローカルリポジトリに設定します。
$ git init
次のように表示されれば、ローカルリポジトリの作成完了です。
次の記事ではリポジトリの作成方法について詳しく解説していますので、ぜひ参考にしてください。
→ 【Git初心者向け】リポジトリの作成からpushまでを解説
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
【ファイル操作編】GitHubの使い方
ここからは、Gitでファイルを追加し、リモートリポジトリにプッシュする方法を紹介します。
1.ファイルを作成する
まずは、ファイルをディレクトリに作成する手順を紹介します。
まず、「cd」コマンドを使用して、ローカルリポジトリ(master)のフォルダまで移動します。前項から続けて作業をしている場合は、すでにローカルリポジトリに移動しているはずです。
一度「ls」コマンドを使用してフォルダ内にどんなファイルがあるか確認してみましょう。初めてGitやGitHubを使用している場合、何も表示されないはずです。
次に、「echo “Hello,git!” > pushtest.txt」と、コマンドを入力してください。
echoコマンドは、任意のファイルに指定した文字列を書き込むコマンドです。このコマンドには、指定先のファイルが存在していない場合、ファイルを作成してから文字列を書き込むという機能があります。この機能を利用して、ファイルを作成しています。
ファイル作成が完了したら、再度「ls」コマンドを使用してください。
前回とは異なり、「pushtest.txt」が表示されれば、ファイル作成は完了です。
ローカルリポジトリにコミットする
ファイルを作成したら、「git add」コマンドでファイルをインデックスにコミット(登録)します。コミットすれば、Gitで管理する対象のファイルになります。
作成したファイルをインデックスにコミットすることで、Gitは新しくファイルが作られていることを認識し、外部へ伝達する準備を整えます。
リモートリポジトリにプッシュする
ローカルリポジトリにてコミットが完了したら、次は作成したファイルをリモートリポジトリにプッシュします。
まずは「git remote」コマンドを使用してリモートリポジトリとの新規接続を作成します。コマンド入力の際に必要となるURLは、「【ダウンロード編】のSTEP3」で入手したURLです。
リモートリポジトリへの新規接続が作成されたら、続けて「git push」コマンドを使用して作成したファイルを送信します。
このとき、初めてローカルリポジトリ内にあるファイルをリモートリポジトリへ複製させるため、GitとGitHubの接続確認が行われ、新規ウィンドウがPOPします。Gitのターミナルをディスプレイ中央に配置していると、POPしたウィンドウが裏に隠れてしまい見落としてしまうこともあるので、注意してください。
「Sign in with your browser」を選択し、画面が遷移したら「Authorize git – ecosystem」をクリックしてください。
システムが自動的にGitとGitHubのユーザー認証および接続を行います。接続が完了すると、自動的にブラウザバックします。もしブラウザバックせず、ブラウザが白い表示のままであったなら、閉じてしまって構いません。
Gitのターミナルに戻り、次のように表示されていれば、リモートリポジトリへのpushは成功です。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
【ファイル活用編】GitHubの使い方
GitやGitHubのファイルは、簡単にコピペができるわけではなく、各コマンドを使うことでさまざまな操作を行います。
ここでは、ダウンロードに関するファイル操作方法を2つ紹介します。
また、Gitでよく使うコマンドについては、次の記事で詳しく解説しています。「あれ、このコマンドどうやって使うんだっけ?」となったらぜひ参考にしてください。
→ よく使うGitコマンド19選!使い方を初心者向けにわかりやすく解説
GitHub上でのダウンロード方法
まずは、GitHubでファイルをダウンロードする方法を確認しましょう。
GitHubでファイルをダウンロードする際の大まかな手順は下記のとおりです。
- GitHubにサインインし、キーワード検索
- 目的の公開プログラムを選択
- ファイルのダウンロード
はじめに、GitHubにログイン後、左上の検索フォームにキーワードを入れてキーワード検索を行います。
次の画面のように、関連するファイルの一覧が表示されるので、ダウンロードしたいものを選びましょう。
ファイルを選んだら、緑色のプルダウンボタンを開き、下の「Download ZIP」のボタンをクリックしてください。
ダウンロードしたファイルは解凍して使用しましょう。
Gitで管理されたファイルのダウンロード
Gitで管理されているファイルをダウンロードするには、「git clone」コマンドを使います。
$ git clone “url”
「“url”」には、GitHub上で検索したプログラムに表示されているURLをコピーして入力しましょう。
【応用編】GitHubの使い方
GitHubの基本的な使い方に慣れたら、応用編を理解してさまざまな操作を覚え、さらに便利に使いこなしましょう。
ここからは、GitHubの応用的な使い方を4つ解説します。
また、GitHubの設定内容を確認・変更する場合は「git config」コマンドを使用してください。「git config」コマンドについては、次の記事で詳しく解説しているので、あわせて参考にしてください。
→ Git configでGitの設定を変更・確認する方法を解説!
ブランチを作成する
ブランチとは、1つのプロジェクトのメインコード(「main」や「master」と呼ばれるブランチ)から分岐して作られる独立したワークスペースです。ブランチを作成することで、メインコードに影響を与えずに複数人が同時に新機能の開発やバグ修正を行えます。
ブランチを作成するには、まずファイルを作成してローカルリポジトリにコミットしましょう。
次に「git branch」コマンドを実行してください。
$ git branch [ブランチ名]
ここでは、ブランチ名を「branch_test」にしています。
$ git branch branch_test
引数なしの「git branch」コマンドで、作成されたブランチの一覧を確認できます。
$ git branch
* branch_test
master
ブランチの作成や切り替えの方法については、次の記事で詳しく解説しています。
→ 【Git入門】ブランチ(branch)とは?メリットや使い方を解説!
ファイルを比較する
「git diff」コマンドを使用すると、2つのファイルを比較して差分を確認できます。
例えば、リモートリポジトリに変更したソースファイルをマージする際、「変更内容が反映されているか」「他の担当者が編集した内容を消してしまってないか」などを確認するために、「git diff」コマンドを使用します。
「git diff」コマンドの基本的な書き方は次のとおりです。
$ git diff
引数なしの「git diff」コマンドで、リポジトリの中にあるファイルすべてを比較することができます。
「git diff」コマンドを使ったファイルの比較方法については、次の記事で詳しく解説しています。
→ 過去のファイルと比較しよう! git-diffの使い方を解説
リポジトリにtagをつける
「git tag」コマンドを使用すると、ファイルにタグをつけてわかりやすくすることができます。
例えばリリースの際、コミットごとにバージョンをつけて管理したい場合(ver1.0 → ver1.1など)にタグをつけておけば、効率よく履歴管理や検索作業が可能です。「git tag」コマンドを使用することでタグを簡単に作成できます。
「git tag」コマンドの書き方は次のとおりです。
# 注釈なしタグ
git tag [タグ名]
# 注釈付きタグ
git tag -a [タグ名] -m [“コメント“]
「git tag」コマンドには、「注釈なし」コマンドと、簡単なコメントがつけられる「注釈あり」コマンドがあります。
git tagの詳しい使い方については、次の記事で詳しく解説しています。
→ 【Git入門】git tagとは?基本をわかりやすく解説!
サブモジュールを作成する
サブモジュールを作成すれば、外部のリモートリポジトリを現在の自分のリモートリポジトリにサブモジュールとして追加できます。
例えば、別のチームが作業中のプロジェクトを自分が担当しているプロジェクトでも利用・参照できるようにしたい場合、サブモジュールを使うのがおすすめです。
サブモジュールを作成するには、「git submodule」コマンドを使います。
まず、ファイルを作成してリモートリポジトリにプッシュします。その後、外部のリモートリポジトリである「Sample」を「git submodule」コマンドで追加しましょう。
$ git submodule add https://github.com/takataka58/Sample.git
Cloning into ‘/Users/taka/sample/Sample’…
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 7 (delta 0), reused 7 (delta 0), pack-reused 0
Unpackin: 100% (7/7), done.
現在のディレクトリに、リモートリポジトリの「Sample」が追加されています。
$ ls -l Sample/
total 16
-rw-r—r— 1 taka staff 23 9 20 08:23 sample1.txt
-rw-r—r— 1 taka staff 23 9 20 08:23 sample2.txt
このときに「git status」コマンドを使って現在の状態を確認してください。
$ git status
On branch master
Changes to be committed:
(use “git reset HEAD <file>…” to unstage)
new file: .gitmodules
new file: Sample
「.gitmodules」とリポジトリの「Sample」が追加されていることがわかります。
「.gitmodules」ファイルを確認してみると、サブモジュール名とURLの情報が記載されています。
$ cat .gitmodules
[submodule “Sample”]
path = Sample
url =<a href="https://github.com/takataka58/Sample.git">
https://github.com/takataka58/Sample.git</a>
サブモジュールを追加したら「git commit」でプロジェクトをコミットするのを忘れないでください。
$ git commit -m "git add Sample"
サブモジュールについては、以下の記事で詳しく解説していますので、ぜひ参考にしてください。
→ これならわかる!git submoduleでサブモジュールを追加する方法
まとめ
本記事では、GitHubの使い方や基礎用語を紹介しました。
GitHubは、Gitを利用したバージョン管理をサポートするWebサービスであり、複数人がひとつのプロジェクト内で同時に開発するのをサポートします。
多くの企業がプロジェクトを進める際に活用していますが、プログラミング初心者がGitHubの特徴的なシステムに慣れるには、時間がかかる人もいるかもしれません。
ぜひ本記事を何度も読み返し、GitHubの習得を目指してください。
この記事の監修者
フルスタックエンジニア
音楽大学卒業後、15年間中高一貫進学校の音楽教師として勤務。40才のときからIT、WEB系の企業に勤務。livedoor(スーパーバイザー)、楽天株式会社(ディレクター)、アスキーソリューションズ(PM)などを経験。50歳の時より、専門学校でWEB・デザイン系の学科長として勤務の傍ら、副業としてフリーランス活動を開始。 2016年、株式会社SAMURAIのインストラクターを始め、その後フリーランスコースを創設。現在までに100名以上の指導を行い、未経験から活躍できるエンジニアを輩出している。また、フリーランスのノウハウを伝えるセミナーにも多数、登壇している。