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コマンドを扱えるようにする方法
下記のサイトからインストーラーをダウンロードします。
2.2Macの場合
アプリケーション>ユーティリティの中からターミナルを選択、またはcommand+spaceで「terminal」と検索して、ターミナルを表示します。
git --version
でバージョン情報が表示されるか確認します。
インストーラーでgitをインストール
https://git-scm.com/download/mac
インストール完了後、ターミナル上でバージョンが表示されればOKです。
homebrewを使ってgitをインストール
homebrewが既にインストールされている場合、brewコマンドを使ってgitをインストールこともできます。
3.GitHubへのアカウント登録
3.1GitHubアカウントの作成
GitHubにアカウントを作成します。
右上のSign upまたはjoinからアカウント作成できます。
usernameはログイン時に使用でき、画面にも表示されます。またリポジトリを作成するとURLにusernameが使われます。
3.2TOTPアプリのインストール
Githubにログイン認証(アカウント名、パスワード)すると、2段階認証コード(ワンタイムパスワード)を求められます。
以下の無料アプリをスマホにインストール
TOTP Authenticator -FAST 2FA
Apple StoreかGoogle playにてTOTPと検索すれば出てきます。
手順はこちらが参考になるかと思います。
アプリをインストールして、設定が完了すると以下のようにTOTPで1分ごとにワンタイムパスワードが生成されるようになります。
6桁のコードを入力すると、GitHubに認証されます。
4.GitHubを使う上で知っておきたい事前知識
ローカルリポジトリとリモートリポジトリ
リポジトリはファイルやディレクトリの変更を保存する場所で、リポジトリ管理下に置くことでファイルなどの変更管理を記録することができます。
インデックス(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」から新規リポジトリを作成します。
Repository nameにプロジェクト名を入力します。
Publicを選択すると、全世界に公開されます。
Privateを選択すると、非公開になります。
※案件などで開発するときなどはPrivateを選択します。
「Create repository」をクリックします。
作成すると下のような画面が表示されます。
画面内にもコマンドの記載があるように、ローカル側で順に実行していきます。
5.2 git initとgit remoteでローカルとリモートの紐づけ
下のように予め作成したプロジェクトフォルダを使用して、リモートリポジトリと紐づけをしていきます。
git init で初期化(初回のみ)
git remote コマンドでリモートと紐づけ(初回のみ)
※urlはGitHubで確認したものをコピーする。
5.3 git addでインデックスに変更を追加、git commitでローカルリポジトリに保存
git add でインデックスに変更を追加
※-Aで全ての変更ファイルが対象になります
git commitでリポジトリに保存
※“first commit” はコメントです。
mainブランチを作ります。
またgit branchで *(アスタリスク)にて現在のブランチがmainであることがわかります。
5.4 git pushでリモートリポジトリに反映
GitHub側
push後、GitHubのページをリロードすると下のようにファイルとフォルダが一式反映されます。
5.5git cloneでローカルに環境を作る
既にGitHub上に存在しているプロジェクトファイルをローカル環境に取得する場合、
git cloneコマンドで取得することができます。
※プロジェクトファイルが大きくて途中で失敗する場合、Git Desktopを使ってみる
プロジェクトフォルダを取得したディレクトリに移動
GitHub上でURLを取得する。
「Code」からファイルのアイコンをクリックするとURLがコピーされます。
移動したディレクトリで以下のコマンドを実行する。
※URLの部分を変更して使用して下さい。
フォルダ、ファイルができていればOKです。
※またプロジェクトの仕様に合わせて、必要なパッケージ等をcomposerやnpm installでローカルに取得、envファイルなどの環境設定をローカル用に変更する必要があります。
5.6 git pullでリモートとローカルの差分をローカルに反映する。
※mainから取得する場合
6.PR(Pull Request)の作り方
git switchで新しくブランチを作る⇒ファイルを更新して新しいブランチにpushする⇒GitHub側でPRを作る⇒(レビューして)mainブランチにmergeする
という流れで紹介します。
6.1git switchで新しくブランチを作る
git switch -cコマンドで別のブランチを作り、切り替えます。(-c は–createの略)
git branch で「01_README_update」ブランチに変わったことを確認
6.2ファイルを更新して新しいブランチにpushする。
README.mdファイルを更新してみます。
以下3つのコマンドで、01_README_updateブランチにプッシュ(反映)する。
git commit -m “README update”
git push origin 01_README_update
6.3GitHub側でPRを作る。
GitHub側を見るとbranchが2つになっていて、「compare & pull request」というボタンが表示されます。「compare & pull request」からでもPRを作れますが、「Pull requests」タブから作る方法を今回ご紹介します。
「Pull requests」タブをクリック後、画面右の「New pull request」をクリックします。
「compare:main」となっているところを選択して「01_README_update」ブランチ選択します。
ブランチ選択後、下のような画面になり、「Create pull request」が押せるようになります。またファイルの差分を確認できます。
「Create pull request」ボタン押下後、PR作成画面に来ます。
※プロジェクトでのPR作成の場合は、右側のReviewersから誰にコードレビューをしてもらうか選択します。
コメント欄に何の変更かわかるように記載して、「Create pull request」を押下します。
6.4mainブランチにmergeする。
PR作成後、下のような画面が表示されます。
「Merge pull request」をクリックします。
※Reviewersを選択している場合、レビューがされてないとmergeできません。
「confirm merge」をクリック
下のようになればmain側にmergeされています。
※新しいブランチがどんどん溜まっていくので、不要になったブランチは「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