【初心者向け】GitHubの基本的な使い方からPRの作り方について解説

Tools/Services

 

1.Githubとは?

Gitの仕組みを利用して、世界中の人がソースコードやデータを保存、公開できるソースコード管理サービスです。
Gitはコードの変更管理を追跡するためのバージョン管理システムです。
Hubは「拠点、集まり」を意味します。

Githubは無料で利用することができ、publicでリポジトリを作成すると全世界に公開されます。現在privateも無料で利用することができ、作成したprivateリポジトリは非公開となります。

Githubでは多くのオープンソースとたくさんのオープンソースコミュニティが形成されています。
またGithubにはソースを公開・共有するだけでなく、知見を共有するWiki、GitHub page機能、議論をしたり課題を管理するissues機能、タスクを管理するprojectsなど様々な機能があります。

2.Gitのインストール

Githubを利用するには、Gitをインストールする必要があります。
インストール後、Git bash(or cmd)またterminal上などでGitコマンドが使えるようになります。

2.1Windowsの場合

Git for Windowsからインストーラーをダウンロードして、Git bashをインストールします。
https://gitforwindows.org/

インストールを終えたらGit bashを起動します。

git --version

バージョン情報が出ればOKです。

cmdでgitコマンドを扱えるようにする方法

下記のサイトからインストーラーをダウンロードします。

http://git-scm.com/

2.2Macの場合

アプリケーション>ユーティリティの中からターミナルを選択、またはcommand+spaceで「terminal」と検索して、ターミナルを表示します。

git --version

でバージョン情報が表示されるか確認します。

インストーラーでgitをインストール

https://git-scm.com/download/mac

インストール完了後、ターミナル上でバージョンが表示されればOKです。

homebrewを使ってgitをインストール

homebrewが既にインストールされている場合、brewコマンドを使ってgitをインストールこともできます。

 brew install git

3.GitHubへのアカウント登録

GitHub

3.1GitHubアカウントの作成

GitHubにアカウントを作成します。
右上のSign upまたはjoinからアカウント作成できます。

usernameはログイン時に使用でき、画面にも表示されます。またリポジトリを作成するとURLにusernameが使われます。

3.2TOTPアプリのインストール

Githubにログイン認証(アカウント名、パスワード)すると、2段階認証コード(ワンタイムパスワード)を求められます。

以下の無料アプリをスマホにインストール
TOTP Authenticator -FAST 2FA

Apple StoreかGoogle playにてTOTPと検索すれば出てきます。

TOTP-Authenticator

手順はこちらが参考になるかと思います。

アプリをインストールして、設定が完了すると以下のようにTOTPで1分ごとにワンタイムパスワードが生成されるようになります。

6桁のコードを入力すると、GitHubに認証されます。

TOTP-app

4.GitHubを使う上で知っておきたい事前知識

ローカルリポジトリとリモートリポジトリ
リポジトリはファイルやディレクトリの変更を保存する場所で、リポジトリ管理下に置くことでファイルなどの変更管理を記録することができます。

remote-local-repository

インデックス(index)
git addでインデックスに(-Aオプションで全部)追加。
Gitでは変更管理するファイルをインデックスに記録することでバージョン管理をすることが可能になります。
またバージョン管理する必要のないもの、.env(環境設定ファイル)や、npm(ノードパッケージモジュール)、アプリ内で作られる画像などはgitignoreでgitで管理しないようにします。

コミット(commit)
git commit -m “comment” でセーブポイントを作る(ローカルリポジトリに保存)。

プッシュ(push)
git push origin main (mainまたはbranch名)でリモートリポジトリ側に変更を反映。

ブランチ(branch)
ブランチ(枝)は、現在リリースしているバージョンとは別に次期開発用の別の変更管理を作り、機能追加や修正を行います。

5.GitHubの使い方

新規でリポジトリを作り、ファイルをGitHubにpushする方法やgit cloneでGitHubのファイルをローカルに複製する方法について紹介いたします。

5.1GitHub上でリポジトリ作成

GitHubにログインしたら、「Repositories」タブをクリックします。
右側にある「New」から新規リポジトリを作成します。

github-logged-in

Repository nameにプロジェクト名を入力します。
Publicを選択すると、全世界に公開されます。
Privateを選択すると、非公開になります。
※案件などで開発するときなどはPrivateを選択します。
「Create repository」をクリックします。

create-new-repository

作成すると下のような画面が表示されます。

created-repository

画面内にもコマンドの記載があるように、ローカル側で順に実行していきます。

5.2 git initとgit remoteでローカルとリモートの紐づけ

下のように予め作成したプロジェクトフォルダを使用して、リモートリポジトリと紐づけをしていきます。

project folder


git init で初期化(初回のみ)

git-init

git remote コマンドでリモートと紐づけ(初回のみ)
※urlはGitHubで確認したものをコピーする。

git remote add origin https://github.com/M-yoshimura-ML/sample1.git

5.3 git addでインデックスに変更を追加、git commitでローカルリポジトリに保存

git add でインデックスに変更を追加

git add -A

※-Aで全ての変更ファイルが対象になります

git commitでリポジトリに保存

git commit -m “first commit”

※“first commit” はコメントです。

git-commit

git branch -M main

mainブランチを作ります。
またgit branchで *(アスタリスク)にて現在のブランチがmainであることがわかります。

git-branch

5.4 git pushでリモートリポジトリに反映

git push -u origin main

git-push

GitHub側
push後、GitHubのページをリロードすると下のようにファイルとフォルダが一式反映されます。

GitHub-main

5.5git cloneでローカルに環境を作る

既にGitHub上に存在しているプロジェクトファイルをローカル環境に取得する場合、
git cloneコマンドで取得することができます。
※プロジェクトファイルが大きくて途中で失敗する場合、Git Desktopを使ってみる

プロジェクトフォルダを取得したディレクトリに移動
GitHub上でURLを取得する。
「Code」からファイルのアイコンをクリックするとURLがコピーされます。

git-clone

移動したディレクトリで以下のコマンドを実行する。
※URLの部分を変更して使用して下さい。

git clone https://github.com/M-yoshimura-ML/sample1.git

git-clone cmd

フォルダ、ファイルができていればOKです。

git-clone folder

※またプロジェクトの仕様に合わせて、必要なパッケージ等をcomposerやnpm installでローカルに取得、envファイルなどの環境設定をローカル用に変更する必要があります。

5.6 git pullでリモートとローカルの差分をローカルに反映する。

 git pull origin main

※mainから取得する場合

6.PR(Pull Request)の作り方

git switchで新しくブランチを作る⇒ファイルを更新して新しいブランチにpushする⇒GitHub側でPRを作る⇒(レビューして)mainブランチにmergeする
という流れで紹介します。

6.1git switchで新しくブランチを作る

git switch -cコマンドで別のブランチを作り、切り替えます。(-c は–createの略)

git switch -c 01_README_update

git branch で「01_README_update」ブランチに変わったことを確認

git-switch

6.2ファイルを更新して新しいブランチにpushする。

README.mdファイルを更新してみます。

以下3つのコマンドで、01_README_updateブランチにプッシュ(反映)する。

git add -A
git commit -m “README update”
git push origin 01_README_update

readme-push

6.3GitHub側でPRを作る。

GitHub側を見るとbranchが2つになっていて、「compare & pull request」というボタンが表示されます。「compare & pull request」からでもPRを作れますが、「Pull requests」タブから作る方法を今回ご紹介します。

pull-request

「Pull requests」タブをクリック後、画面右の「New pull request」をクリックします。

pull-request2

「compare:main」となっているところを選択して「01_README_update」ブランチ選択します。

pull-request3

ブランチ選択後、下のような画面になり、「Create pull request」が押せるようになります。またファイルの差分を確認できます。

pull-request4


「Create pull request」ボタン押下後、PR作成画面に来ます。
※プロジェクトでのPR作成の場合は、右側のReviewersから誰にコードレビューをしてもらうか選択します。
コメント欄に何の変更かわかるように記載して、「Create pull request」を押下します。

pull-request5

6.4mainブランチにmergeする。

PR作成後、下のような画面が表示されます。
「Merge pull request」をクリックします。
※Reviewersを選択している場合、レビューがされてないとmergeできません。

pull-request merge

「confirm merge」をクリック

pull-request confirm-merge

下のようになればmain側にmergeされています。

git merged

※新しいブランチがどんどん溜まっていくので、不要になったブランチは「Delete branch」ですぐ削除できます。

7.よく使うGitコマンド

git status
リポジトリの状態を確認するコマンドです。

git add
ファイルやディレクトリをインデックスに追加するコマンドです。
git add -A
 -A ですべでの変更ファイルを追加

git commit
インデックスに追加されたファイルやディレクトリの変更をリポジトリに書き込むコマンドです。
git commit -m “comment”

git push
commitされた変更をリモートリポジトリへ反映させるコマンドです。
git push origin main

git branch:ブランチの一覧表示
git branch -a:リモートも含めて一覧表示

git switch [branch name]
ローカルリポジトリのブランチを切り替えるときに使うコマンドです。
git switch -c [branch name]
-c をつけると新しくブランチを作って、切り替えます。

git clone
既存のリモートリポジトリをローカルに落とすときに使うコマンドです。

git remote
リモートリポジトリを操作するために使うコマンドです。
git remote add [name] [url]

git merge
現在のブランチに対して、他のブランチで行った変更を取り込むためのコマンドです。

git pull
リモートブランチの変更を取り込むためのコマンドです。
git pull origin main