近年、IT産業による経済効果には目を見張るものがあり、その第一線で活躍しているのがエンジニアです。
エンジニアが開発を進める中で、必ずと言っていいほど関与してくる「GitHub」というツールがあります。
この「GitHub」の使い方を理解していないと、プロジェクトへのスムーズな参加ができず、業務から遅れをとることになりかねません。
そこでこの記事では、転職してエンジニアになりたいと考えている方、駆け出しのエンジニアとして仕事を始めたばかりの方へ向けて、GitHubの使い方を徹底解説していきます。
画像などを用いて、分かりやすく説明していきますので、ぜひ最後までご覧になってください。
GitHubとは?Gitと何が違う?
似たような言葉で「GitHub」と「Git」が存在します。しかしこれらは全く意味が異なるものであり、それぞれの定義を理解しなくてはいけません。
そこでこの章では、GitHubとGitの意味を詳しく解説していきます。
Git=バージョン管理システム
始めにGitについて解説していきます。
Gitは、分散型バージョン管理システムのことであり、PC上で操作することによって、変更された履歴情報を複数人で同時に管理できるシステムです。
Gitは以下のような特徴から、エンジニア業界で重宝されています。
- 古いファイルから最新ファイルまで履歴管理できる
- 複数人で同時に編集できるためチーム開発に向いている
- ミスが起きた際に古いバージョンに手軽にさかのぼれる
複数人で同時に編集した際に起きたしまいがちな
「間違えて前の編集者の変更内容を上書きしてしまった」
といったトラブルも回避できるでしょう。
つまり、複数人で同時に使用できる効率的な作業環境を実現し、かつリスクヘッジにもなるバージョン管理システムがGitです。
GitHub=Webサービス
対して、Git Hubは、ソースプログラムやレポジトリを保存及び共有できる、チーム開発に特化したWebサービスです。
2008年のサービス公開以来、プログラマーを中心に絶大な人気を誇るサービスであり、現在も多くの開発現場で使用されています。
GitHubは上で解説したGitの仕組みを活用しており、チーム開発に便利なバージョン管理ができるサービスであることに変わりありませんが、大きな違いとしてGitHubはシステムではなくあくまでサービスであり、ユーザーがより便利にチーム開発を進めるためのさまざまな機能や工夫が盛り込まれています。
次章では実際にGitHubを使ってできることについて詳しく見ていきましょう。
GitHubでできることと主な使用シーン
GitHubを使用する主なシーンは以下の通りです。
・機能の追加
・バグの修正
・FB(フィードバック)
これらの作業においては、プログラムの変更点が多く、複雑になりがちですが、GitHubを活用することで「Who(誰が)、When(いつ)、Purpose(何のために)」
といった情報まで変更点と同時に保存できるため、チーム開発効率が大幅に上昇します。
また、共有機能により、チーム全体の進捗状況を相互把握できるため、遅れやミスなどにも強い、超実践的な開発現場に則したサービスと言えるでしょう。
リポジトリ(GitHub上でファイルを保存する場所)には、公開リポジトリ(パブリックリポジトリ)と非公開リポジトリ(プライベートリポジトリ)の分類が存在し、限定した一部のユーザーにのみ公開できる非公開リポジトリは元々有料機能でしたが、2020年以降は無料で使用できるようになりました。
更に、GitHub上で使用できるコミュニケーション機能「Pull Request」や「Issue」を活用することで、ユーザー同士で共有したリポジトリに対して、要求・提案といったコミュニケーションもスムーズにおこなえる仕組みとなっています。
他にも
・GitHub Projects:プロジェクト管理ツール
・Codespaces:人気のソースコードエディタ「Visual Studio Code」をオンライン使用できる機能
といったように、開発現場で役に立つ機能がGitHub内で豊富に用意されています。
【GitHub】使い方を知る前の基本知識
ここまでGitHubの概要と、できることや主なシーンについて見てきました。
続いてこの章ではGitHubを使いこなすにあたって最低限理解しておきたい基礎知識を解説します。
まず本章で紹介する単語を頭に入れておくことで、実際に使用する際にも、GitHubをよりスムーズに使いこなせていけるはずですよ。
ローカルリポジトリとリモートリポジトリ
「リポジトリ」とは、GitHub内でフォルダ(ディレクトリ)やファイルを保管する場所を指します。
リポジトリは以下の2種類に分類できます。
- ローカルリポジトリ:リポジトリにはローカル内(PC内)に保存される
- リモートリポジトリ:ネットワーク上に保存される
ローカルリポジトリで作業保存したものを、リモートリポジトリにアップロード(プッシュ)する
というのが、GitHubにおける基本的な作業の流れとなります。
全てのリポジトリはGitHub内で作成でき、リモートリポジトリとして作成したリポジトリをPC内にコピー(クローン)することでローカルリポジトリとします。
コミットとプッシュ
次に、コミットとプッシュについて解説していきます。
コミット
「コミット」は、本来IT業界では処理・変更などを確定させる、または反映させるなどの意味で用いられています。
Git Hubにおいては「作成したソースコードをローカルリポジトリに反映させる」という意味で使用します。
コミットは、コードのデータだけでなく、そのデータの更新情報や変更履歴、さらには新たなデータの追加などもリポジトリに保存することができます。
データの更新情報はリポジトリに保存できますが、そのままではGitに変更した内容は登録されないので、編集や更新をした際はコミットを忘れないことが重要です。
プッシュ
「プッシュ」は、ローカルリポジトリで編集したデータや、追加したデータをリモートリポジトリにアップするための操作です。
つまり、この操作はローカルリポジトリとリモートリポジトリの同期を意味しています。
データの更新と同時にプッシュすれば、ローカルリポジトリでコミットされたデータがリモートリポジトリに反映される仕組みです。自分のパソコン上でデータを変更したときは、ほかのユーザーがそのデータにアクセスできるようGit Hubへのプッシュが必要です。
ブランチ(branch)とマージ
「ブランチ」は、枝や、分岐といった意味を持つ単語です。
GitHubにおいては、データの変更履歴の流れを、ある時点で分岐させ、例えば「リリース版」「機能追加」「バグ修正」というように別々の形に分岐させ、それぞれの開発を同一リポジトリ内で同時におこなえるバージョン管理システムの機能を指します。
それぞれ独立させることによって、ディレクトリの変更や更新をほかのブランチの影響を受けずに同時におこなえるのがメリットです。
開発現場では1つのプロジェクトに対して、複数人で同時に機能追加やバグ修正などをおこなう場面が多々見られるため、GitHubにはブランチ機能が欠かせません。
また、それぞれのブランチは、ほかのブランチと合流して1つのブランチにまとめることも可能です。
それぞれ異なったブランチの変更を反映させることを「マージ」と言います。
ちなみに、リポジトリに1回目のコミットによって、作成されるブランチをmasterブランチといい、ブランチを切り替えるまでmasterブランチに追加されていく仕組みです。
プルリクエスト(Pull request)
ローカルリポジトリで変更されたデータを、ほかのユーザーに通知する機能を「プルリクエスト」といいます。自分でおこなった編集を、オリジナルのデータに反映させるための通知方法です。
プルリクエストは、オリジナルのデータを作成したオーナーに通知できます。
プルリクエストで使える機能は以下の3つです。
- 機能追加や改良などの作業内容の通知
- データの変更箇所を分かるように表示する
- データに関するコミュニケーションができる環境の提供
作成されたプルリクエストは後から一覧で閲覧可能です。
プルリクエストは、Git Hub上でできます。ブランチにプッシュした場合、Git Hubで該当のリポジトリの画面を開くと「Compare & pull request」と書かれたボタンが出てくるのでそのボタンをクリック。
そのままプルリクエストの作成画面に移ります。
GitHubの使い方(導入編)
GitとGitHubについて並びに最低限の基本事項を理解したうえで、ここからは実際にGitHubの使い方を解説していきます。
まず本章では、Gitを導入してGitHubアカウントを作成するまでの方法を紹介します。
Step1.Gitを導入
※ご使用のPCがmacOSの場合、既にGitが導入されているため、Step3.からスタート
「Git」の公式サイトにアクセスし「Git for Windows」をクリック。
ダウンロード用ページから該当するインストーラーをダウンロードしましょう。
インストーラーを起動し、デフォルトで操作を進めていきましょう。
基本的に全て「Next」でOKです。
最後に「Install」をクリックすれば、Gitのインストールが開始できます。
Step2.Gitのバージョン確認
「Git Bash」を起動し、以下のコマンドを実行して、Gitのバージョンを確認します。
$ git –version
上記のように、Gitが既にインストール済みでありバージョンは「2.39.0」である点が確認できました。
Step3.Gitの設定
Gitは多くのユーザーによる同時作業・編集に最適なソフトです。
編集には、前述のとおり「Who(誰が)、When(いつ)、Purpose(何のために)」といった情報も追加できるため、ここであらかじめ「Who(誰が)」の情報を設定しておきましょう。
まずはユーザー名とメールアドレスを登録していきます。
git config –global user.name ユーザ名
git config –global user.email メールアドレス
上記コマンドのカタカナ部分を、自分のユーザー名、メールアドレスに変更した上でそれぞれ入力・実行しましょう。
最後に、Gitに情報が追加されているかを確認します。
$ git config –list
上記のコマンドで、Gitに追加されている情報が確認できます。
多くの情報が並んでいますが、先ほど追加した情報がそれらの中に確認できればOKです。
Step4.GitHubアカウント作成
続いてGitHubのアカウントを作成します。
GitHubの公式サイトにアクセスし、画面右上の「Sign up」から、アカウント作成を開始しましょう。
メールアドレス及びパスワードとユーザーネームの入力を求められます。
適当な名前と、推測される可能性の少ないパスワードを決めて入力しましょう。
最後にロボットではないことを証明するための簡単な質問(同じ絵柄を選択など)が2問ほど出題されますのでそれらに解答し、すぐ下にある「Create account」をクリックしましょう。
先ほど入力したメールアドレスにコードが届きます。
GitHubにコードを入力し、そのまま認証を進めていけばアカウント登録完了です。
これで、Git及びGitHubを使用する準備が整いました!
Step5.アクセストークンの発行
2021年8月以降、GitHubの実質的な使用には「アクセストークン」が必要になりました。
このタイミングで発行しておきましょう。
※ちなみに、アクセストークンは発行時の一度きりしか、表示されません。
かならず、メモ、もしくはメモ帳へのコピー、スクリーンショットなどで保管しておきましょう。
まず、画面右上のプロフィールアイコンをクリックし「Setting」に進みます。
続いて、Setting画面左下にある「Developer settings」に移動しましょう。
「Developer settings」左下の「Tokens(classic)」に移動し、画面右上の「Generate new token」とあるタブから、「Generate new token(classic)」を選択しましょう。
「Note」の部分には適当に名前をつけ「Expiration」でこのアクセストークンの有効期限を設定しましょう。
有効期限は7日間〜90日間までデフォルトで用意されており、無制限を選択することもできます。
ただし、このアクセストークンはセキュリティ上非常に重要ですので、漏洩リスクを考慮してなるべく短め(30日間など)に設定するのがおすすめです。
その下には、様々な項目が用意されていますがここではリポジトリを指す「repo」のみ、チェックを入れておきましょう。
最後に画面下部の「Generate token」をクリックすれば、自動でアクセストークンが生成されます。
繰り返しになりますが、このアクセストークンは、リロードや一度画面を離れてしまうと二度と確認できません。必ずコピーし、メモしておく、もしくはスクリーンショットを撮影しておくことを忘れないでくださいね。
GitHubの使い方【リポジトリ作成編】
アカウントの登録が完了したあとは、リモートリポジトリ作成に取り掛かります。
Step1.リポジトリの新規作成
GitHubにログインし、トップ画面左上の「Create repository」を選択します。
「Create a new repository」に移行するため、各項目を選択・入力していきます。
各項目の解説は以下の通りです。
- Owner:リポジトリのオーナーを選択
- Repository name:リポジトリの名前を設定
- Public or Private:公開or非公開リポジトリの選択
- Add a README file:リポジトリの解説や注意点を記述する「READMEファイル」をクリックで追加
今回は
- Repository name:example
- Public or Private:Public(公開)
- Add a README file:チェックなし
で進めます。
画面下部の「Create repository」をクリックすれば、新規レポジトリが作成できます。
Step2.リモートリポジトリのアドレスをコピーする
画面上側に自身のリモートリポジトリのアドレスが表示されますので、メモとして控えておきましょう。
Step3.ローカルリポジトリの作成
次に、ローカルリポジトリの作成のため、まずはディレクトリ(フォルダ)を作成します。
「Git Bash」もしくは「ターミナル」を開き、以下のコマンドをそれぞれ実行します。
mkdir gittest
cd gittest
mkdir hubtest
cd hubtest
それぞれのコマンドは
mkdir gittest→「gittest」というディレクトリを作成
cd gittest→「gittest」に移動
mkdir hubtest→「hubtest」というディレクトリを作成
cd hubtest→「hubtest」に移動
という指示をPCに出しています。
続いて、以下のコマンドで、先ほど作成したディレクトリをローカルリポジトリに指定します。
git init
Initialized empty Git repository in ~
と結果が表示され、当該ディレクトリに(master)と表示されていればOKです。
なお、このマスターは、現在いる場所がマスターブランチであることを指しています。
git initは、プロジェクト上の成果物の変更履歴などの記録をおこなっていない既存のプロジェクトをGitリポジトリに変換したり、新規リポジトリを作成・初期化したりするためのコマンドです。
Step4.ファイルの新規作成
適当なファイルをローカルリポジトリに追加してみましょう。
今回は、試しにtxtファイル「test.txt」を作成し、内容に「hello world」と記載しました。
このファイルは、作成したgittest/hubtestに格納します。
また、ターミナルに以下のコマンドを入力することで、textファイルを追加することも可能です。
touch ファイル名.txt
Step5.ローカルリポジトリにコミット
以下のコマンドで、ローカルリポジトリに作成したファイルをコミットします。
git add test.txt
これで、test.txtはGitの管理対象ファイルとなりました。
また、以下のコマンドで、対象の状態を確認できます。
git status
addできたら下記のコマンドで、ファイルをコミットします。
git commit -m “コメント”
git commitに「-m」を加え「””」または「’’」で囲むことで、履歴情報にコメントも同時に残せます。
コメントを残しておけば、後からログを確認する際に動きがわかりやすく、何かと便利ですよ。
Step6.ローカルリポジトリをプッシュする
最後に、ローカルリポジトリをリモートリポジトリにプッシュ(git push)していきます。
まずは、以下のコマンドで、リモートリポジトリにgitファイルを新たに追加します。
※ネット環境が必要
git remote add origin https://github.com/ユーザーID/example.git
ユーザーIDの部分は、自分のGitHubユーザーIDを代入します。
これを実行すると、ユーザー名、パスワードの入力が要求されます。
パスワードの部分は、パスワードではなく、先ほど作成したアクセストークンを入力しましょう。
Step7.GitHubで確認
GitHubに移動し、実際に追加されているか確認してみましょう。
この一連の流れで、GitとGitHubの導入から、プッシュまでできましたね!
GitHubの使い方【ブランチ作成編】
GitとGitHubの導入から基本的な使用方法を理解したところで、この章では「ブランチ」の作成からマージまでの手順をチェックしていきましょう。
ブランチは、ファイルを分岐して、独立させられる、複数人の開発現場では必須の機能です。
ぜひ何度も見返して、しっかり理解してくださいね。
Step1.ブランチ作成
まずは、現在のブランチを確認してみましょう。
git branch
上記コマンドを入力すると、作成されたブランチが確認できます。
「*master」のみとなっていますね。つまり、現時点では、大元となるマスターブランチのみが存在する状態です。
そこでまずはブランチを新たに作成します。
git branch[ブランチ名]
今回は
git branch branch_test
を例として作成しました。
再度
git branch
コマンドで、ブランチを確認すると
新たに「branch_test」が追加されていることがわかります。
ちなみにブランチの前半に表示されている「*」は、作業中のブランチを指しています。
Step2.ブランチの切り替え
画像ではmasterに、作業中の「*」がついています。
これを先ほど作成した、brunch_testに移動させてみましょう。
git checkout branch_test
上記のように「git checkout」でブランチの切り替えを指示、その後の文章で切り替え先を指定します。
switched to branch ‘branch_test’
と表示されていれば、切り替えが成功しています。
念のため再度、
git branch
で確認してみましょう。
Step3.ブランチにプッシュ
試しにブランチ内で、ファイルを作成し、実際にプッシュしてみましょう。
touch branch.txt
上記のコマンドで「branch」というテキストファイルを作成します。
続いて、作成したファイルをgitにプッシュしていきましょう。
導入編で解説したとおり、add、commitした後、pushしましょう。
git add branch.txt
git commit -m “コメント”
git push origin branch_test
Git Hubで確認すると「2branches」と表示されており、2つのブランチが存在していることが分かります。
Step4.プルコマンド
このように、プッシュされたブランチを、第三者が新たに開発するケースや、他の開発者がプッシュしたブランチを、自分が開発するためには「プル」を活用します。
git pull
ここまでの手順で、多くの開発者と連携して開発が進められます。
Step5.ブランチのマージ
開発現場では、ここまで紹介したブランチを活用し、分岐させて、新機能の開発を独立でおこない、バグの検証やテストを経て、主体のmasterブランチに取り入れます
主体のブランチに取り込む一連の作業を「マージ」と言います。
まずはマスターブランチに移動し、先ほどのbranch_testをマージしていきます。
以下のコマンドを上から入力してみましょう。
git checkout master
git merge branch_test
git push origin master
上記一連の流れで、branch_testでおこなった変更が、masterブランチと統合されました。
GitHubの使い方【ファイルダウンロード編】
最後に、GitHubから、ファイルをダウンロードする方法について以下の2通りをそれぞれ紹介します。
・GitHub上(ブラウザ)でダウンロード
・「git clone」コマンドを使用する
GitHub上でのダウンロード方法
まず、ブラウザからGitHub経由で任意のファイルをダウンロードする方法について解説します。
GitHubでのファイルダウンロード方法は、以下の手順です。
Step1.ブラウザからGitHubを開きログイン
Step2.ダウンロードしたいリポジトリに移動
Step3.緑色の「<>Code」タブを選択し「Download ZIP」
以上で、対象のリポジトリをZIPファイルで、PCにダウンロードできました。
リポジトリをクローンする方法
続いて「git clone」を使って、既にあるリポジトリをローカルに保存していきましょう。
方法は非常に簡単です。
git clone [リポジトリパス]
以上のコマンドでリポジトリの複製が可能です。
GitHubからのダウンロードの場合、リポジトリパスには以下のように対象リポジトリのurlを指定します。
git clone https://github.com/[ユーザー名]/[リポジトリ名].git
Git Hubの使い方をマスターして最大限活用しよう!
GitHubを初めて使う人にとっては、最初のうちは難しいイメージが拭えないと思います。
しかし、初めからすべて理解しようとする必要はないのです。
最初のうちはまったく分かっていなくても、使い方を調べながら使い続けていけば自ずと分かっていくので安心してください。
まずはアカウントの作成から行ってみて、それから地道に内容を理解するようにしていきましょう。
これからGit Hubを活用したいと考えている初心者のエンジニアや、これからエンジニアの勉強していこうと考えている人は、GitHubを最大限活用するため、テキストエディタやPower Shell、ターミナルなどの使い方もマスターしておくと良いかもしれません。