今さら聞けない!GitHubの使い方【超初心者向け】
今まで使ったことがない初心者向けに「GitHubの使い方」を解説した記事です。Gitを使う上で知っておきたい、ローカルリポジトリとリモートリポジトリ、コミットとプッシュなども細かく紹介。最後は、よく使うGitのコマンド12もあり。
TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。
開発者にとってなくてはならないサービスとしてGitHubがあります。エンジニアにとっては当たり前のサービスですが、これからプログラミングの勉強を始める初心者にとってはよくわからないかもしれません。
そこで今回は、そんな初心者でも今日から使えるように解説していきます。そもそもGithubとは何なのか、どんな時に使うツールなのかを知っていきながら実際の使い方を紹介しています。
本格的に使おうと思ったらもっと多くのことを知らなくてはなりませんが、業務で使うということでなければ十分でしょう。
なお本記事は、TechAcademyのオンライン完結のGitHub講座のカリキュラムをもとに執筆しています。
今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

田島メンター!!GitHubってなんですか〜?

GitHubはね、Gitをオンライン上で管理するサービスだよ。

もう少し詳しくおしえてもらえますか〜?
目次
GitHubとは
GitHubとは、ソフトウェア開発プロジェクトのためのソースコード管理サービスです。
公開されているソースコードの閲覧や簡単なバグ管理機能、SNSの機能を備えており、開発者にとって無くてはならないサービスです。
また、GitHubを使ってバージョン管理を行っている企業も多数あります。
[PR] 現役エンジニアに質問しながらプログラミングを習得する学習方法とは
GitHubのアカウント登録
それでは早速GitHubに登録してみましょう。
まずは、GitHubのトップページにアクセスします。
ここで、ユーザ名とメールアドレス、パスワードを入力して、アカウント登録を行ってください。
続いて、プランを選択します。有料のプランもありますが、無料で使えるFreeプランがあります。
今回はFreeプランで登録するので、「Free」を選んでから「Finish sign up」ボタンをクリックします。
登録したメールアドレスに認証のメールが届きます。メールの内容に従いユーザ認証を行ってください。
以上でGitHubのアカウント登録は完了です。

GitHubの登録はできました♪それで、どうやって使うんですか〜?

その前にいくつか知っておいたほうがいいことがあるから、教えておくね。

はい、お願いします♪
GitHubを使う上で知っておきたい事前知識
早速GitHubを使っていきたいところですが、使い始める前に知っておきたい事前知識を3つ紹介します。
ここで紹介する言葉がまったくわからない場合は、理解しておきましょう。
事前知識1:ローカルリポジトリとリモートリポジトリ
リポジトリとは、ファイルやディレクトリの状態を保存する場所です。変更履歴を管理したいディレクトリなどをリポジトリの管理下に置くことで、そのディレクトリ内のファイルなどの変更履歴を記録することができます。
リポジトリは自分のマシン内にある「ローカルリポジトリ」とサーバなどネットワーク上にある「リモートリポジトリ」の2箇所にあります。基本的にローカルリポジトリで作業を行い、その作業内容をリモートポジトリへプッシュする流れで行います。
事前知識2:コミットとプッシュとは
最低限この2つは知っておきましょう。
- コミット(commit) :ファイルの追加や変更の履歴をリポジトリに保存すること
- プッシュ(push) :ファイルの追加や変更の履歴をリモートリポジトリにアップロードするための操作
事前知識3:ブランチ(branch)とは
ソフトウェアの開発では、現在リリースしてるバージョンのメンテナンスをしながら新たな機能追加やバグ修正を行うことがあります。このような、並行して行われる複数のバージョン管理を行うために、Gitにはブランチ(branch)という機能があります。
ブランチは履歴の流れを分岐して記録していくものです。分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ内でそれぞれの開発を行っていくことができます。
GitHubの使い方
それでは使い方を覚えていきましょう。
基本的なGitの作業は下記のような流れとなるので、GitHubを使って順番に紹介します。
なお、1の作成は初回のみ行い、2から5を繰り返します。
基本的に小さい作業の単位でコミットを行い、ある程度作業がひと段落した時にプッシュをするのが一般的です。コミットの作業がわかりやすいように、コミットメッセージを残しておくと、ログを追っていく時に役立ちますので覚えておきましょう。
- GitHubでリポジトリを作成(git init)、または複製(git clone)する
- ファイルの作成、編集を行う
- ファイルの作成/変更/削除をgitのインデックスに追加する(git add)
- 変更結果をローカルリポジトリにコミットする(git commit)
- ローカルリポジトリをプッシュしてリモートリポジトリへ反映させる(git push)
GitHubでリポジトリを作成する
まずはリポジトリを作成します。
GitHubにログインした状態で、「New Repository」ボタンを押下します。
次に表示される画面では、「Repository name」の入力のあと、必要に応じて「Description」も入力します。
また、リポジトリの種類を「Public」か「Private」を選択します。この「Private」リポジトリは、有料会員のみ作成することが可能です。
最後に、リポジトリの中にあらかじめREADMEファイルを作成しておく場合は「Initialize this repository with a README」にチェックを入れます。.gitignoreやlicenseについては後で追加や変更ができますので、Noneを選択します。
必要項目の入力が終わり「Create repository」ボタンをクリックするとリポジトリの作成は完了です。
次の画面で、リモートリポジトリのアドレスが表示されますので、控えておいてください。
ファイルの作成、編集を行う
今回は、「hello.html」というファイルをローカルのPC上に作成した想定で進めます。
テキストエディタなどでHTMLファイルを作ります。
はじめに、ローカルのPC上にローカルリポジトリを作成します。
今回は「awesome」というディレクトリを作成することにします。
mkdir awesome cd awesome git init
「mkdir」は新しくディレクトリを作成するコマンドで、「cd」はディレクトリを移動するコマンドになります。awesomeというディレクトリを作成し、そのディレクトリに移動してから作業が始まります。
そして、この「git init」コマンドはGitリポジトリを新たに作成するコマンドです。
バージョン管理を行っていない既存のプロジェクトをGitリポジトリに変換する場合や、空の新規リポジトリを作成して初期化する場合に使用します。git initコマンドを実行するとカレントディレクトリをGitリポジトリに変換します。
ファイルの作成/変更/削除をgitのインデックスに追加する(git add)
先ほど作成した「hello.html」のファイルをローカルリポジトリに追加しましょう。
以下のコマンドでインデックスに追加します。
インデックスとは、リポジトリにコミットする準備をするために変更内容を一時的に保存する場所のことです。
git add hello.html
変更結果をローカルリポジトリにコミットする(git commit)
次に、インデックスに追加されたファイルをコミットします。
コミットとは、ファイルやディレクトリの追加や変更をリポジトリに記録する操作のことです。
git commit -m "add new file"
これで、リポジトリに対してファイルの追加が記録されました。
ファイルが追加されているか確認します。
git status
さらに、リモートリポジトリに反映させる前に、リモートリポジトリの情報を追加します。この情報は、先ほどGitHub上に表示された、リモートリポジトリのアドレスです。今回は例を示します。
git remote add origin https://github.com//awesome.git
ローカルリポジトリをプッシュしてリモートリポジトリへ反映させる(git push)
ローカルリポジトリの変更を、GitHub上にあるリモートリポジトリに反映させるため、以下のコマンドを実行します。
git push origin master
GitHubのユーザ名とパスワードを尋ねられますので入力してください。
これで、GitHubへプッシュしてリモートリポジトリへ反映させることができました。
ブランチの使い方
基本的な使い方が分かったところで、実際の開発現場でよく利用されているブランチ(branch)の使い方について見ていきましょう。
事前知識としてご紹介しましたが、ブランチは並行して行われる複数のバージョン管理を行うための仕組みです。基本的には以下のような手順で利用します。
ブランチの作成、移動
まずは現在のブランチ一覧を見ていきましょう。
git branch
実行結果は以下のようになります。作業中のブランチには「*」が付きます。これで、現在のブランチが master だけであり、作業中のブランチもmasterであることが分かります。
それではブランチを作成してみましょう。今回は「sub1」というブランチを作成します。
git branch sub1
ブランチの移動は、checkoutコマンドで行います。
git checkout sub1
なお、ブランチの作成と移動は、以下のコマンドでまとめて行うこともできます。
git checkout -b sub1
ここで再び、現在のブランチ一覧を見てみましょう。
git branch
実行結果は以下のようになります。sub1ブランチが追加され、作業中であることが分かります。
ブランチ内での開発作業
次にブランチ内で開発作業を行っていきます。とは言ってもなんら変わることはありません。例として、goodmorning.htmlというファイルを作成してみます。
ブランチにプッシュ
まずは、作成したファイルをgitに追加、コミットします。
git add goodmorning.html git commit -m "add file goodmorning"
これで、ローカルリポジトリに対してファイルの追加が記録されました。
では、リモートリポジトリに反映させてみましょう。リモートリポジトリの情報は登録済ですので、ブランチ名を指定するだけで、プッシュできます。
git push origin sub1
GitHubで確認してみると、現在2つのブランチが存在し、sub1ブランチがプッシュされていることが分かりますね。
ブランチからプル
それでは、他の開発者がsub1リポジトリで開発するにはどうしたら良いでしょうか。このような共同開発でこそ、gitは威力を発揮します。この場合、プルコマンドを使って簡単に実現できます。
※以下、他の開発者が、同じGithubで共同開発しており、masterブランチをチェックアウトしているとします。
まずは、リポジトリsub1にチェックアウトします。
git checkout sub1
実行結果は以下のようになります。チェックアウトしたブランチsub1が、リモートブランチのsub1に対応付いていることが分かります。
次にリモートブランチsub1のコードを取得します。
git pull
ローカルファイルの一覧を見ていきましょう。
ls
実行結果は以下のようになります。たったこれだけで、複数の開発者による共同開発をはじめることができます。
ブランチのマージ
実際の開発現場では、新機能をブランチを作って開発を行い、テストが完了したら、メインのmasterブランチに取り込む、という流れで開発作業を行います。このブランチに取り込む作業のことをマージといいます。具体的な手順は以下のとおりです。
まず、作業中のブランチをmasterに切り替えます。
git checkout master
次に、sub1ブランチの作業結果をマージします。
git merge sub1
実行結果は以下のようになります。sub1ブランチで作成したgoodmorning.htmlファイルが追加されたことが分かりますね。
Githubにプッシュしてみましょう。
git push origin master
これで、ブランチsub1の内容がmasterにマージされました。
ブランチの削除
使わなくなったブランチは削除することができます。ただし、実際の開発現場では、間違って作成してしまった場合を除き、作業が完了したブランチであっても残しておくことが一般的です。
ブランチの削除は以下のコマンドで行います。
git branch -d sub1
結果を見てみましょう。
git branch
実行結果は以下のようになります。ブランチsub1が削除され、masterだけが存在していることが分かります。
よく使うGitのコマンド12
最後によく使うGitのコマンドを12紹介します。
既に紹介しているものもありますが、まずはここから覚えておきましょう。
git status
リポジトリの状態を確認するために使うコマンドです。
現在のブランチの名称や、追加・変更されたファイルやディレクトリの一覧を表示します。
git status
git add
ファイルやディレクトリをインデックスに追加するために使うコマンドです。
追加するときの[file_pattern]には、ファイル名やディレクトリ名を直接している他に、「*.txt」のように、ワイルドカードで複数対象を指定することもできます。
git add [file_pattern]
git commit
インデックスに追加されたファイルやフォルダの変更をリポジトリに書き込むために使うコマンドです。オプションを指定しないでこのコマンドを実行すると、コミットメッセージを記述するためのエディタが起動します。
エディタの使い方はそれぞれ異なりますので、簡単にメッセージを指定するには-m
オプションを付けた後にダブルクォーテーションで囲ったメッセージを指定します。また、-a
オプションを指定すると、変更されたファイルを検出してインデックスに追加する動作も同時に行います。
git commit -am "A first commit"
git branch
ブランチに対して各種操作を行うために使うコマンドです。下記のように使います。
- git branch [branch-name]:ブランチの作成
- git branch:ブランチの一覧表示
- git branch –d [branch-name]:指定したブランチを削除
git checkout
ローカルリポジトリのブランチを切り替えるときに使うコマンドです。
git checkout [branch-name]
git log
ローカルリポジトリのコミット履歴を閲覧するために使うコマンドです。
-n
オプションで履歴の表示数を指定できます。
git log –n 10
git grep
リポジトリのファイルの内容から検索したいときに使うコマンドです。
特定の語句が含まれているファイルを検索し、そのファイルのどこに語句が含まれているかを調べることができます。
git grep "検索単語"
git clone
既存のリモートリポジトリをローカルに落とすために使うコマンドです。
例えば、GitHubに公開されているリポジトリを自分のコンピュータへ落とすときに使います。
git clone [url]
git remote
リモートリポジトリを操作するために使うコマンドで下記のように使います。
- git remote:リモートリポジトリの名称一覧を表示
- git remote -v:リモートリポジトリの詳細一覧を表示
- git remote add [name] [url]:リモートリポジトリを追加
- git remote rm [name]:リモートリポジトリを削除
git reset
ローカルリポジトリのコミットを取り消すために使うコマンドです。
間違えてコミットしたり、修正漏れがあったときによく使います。
git reset –soft HEAD^
git merge
現在のブランチに対して、他のブランチで行った変更を取り込むために使うコマンドです。
以下の例では、ブランチbug-fixをmasterブランチにマージします。
git checkout master git merge bug-fix
git pull
リモートブランチの変更を取り込むために使うコマンドです。
以下の例では、ローカルリポジトリのmasterブランチにリモートリポジトリoriginのmasterブランチを取り込みます。
git checkout master git pull origin master
今回の記事は以上です。
ぜひご自身で使ってみてください!
動画での解説はこちら。
Gitのインストール方法の記事もあるので、合わせてご覧ください。
また、現役エンジニアによるGitHub実践入門 ~Pull Requestによる開発の変革の書籍レビューも掲載しています。

なんだか覚えることがたくさんあって、大変そうですね・・・。

そうだね。でも最初のうちは使うコマンドは本当に最低限commitしてpushとかpullとかだけ抑えておけばいいから、少しずつ慣れていこうね。

頑張ります♪
[お知らせ]TechAcademyでは自宅で学べるオンライン完結のGitHub講座を開催しています。わからないことをチャットで質問すると、現役エンジニアのメンターが毎日すぐに回答します。
また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。