GitHub開発チュートリアル 最初からデプロイまで説明

GitHubアイコン

悩む人
GitHubを使って開発ってどうやればいいの?

 

そんな悩みに現役エンジニアがお答えします。

この記事では、初心者ユーザ向けにGitHubを使用した開発フローを理解できるチュートリアルを紹介します。
上から順にやっていくことで一通りの流れを体験できます。

本記事の狙い

  • GitHub を使用した開発の基本的な流れを手を動かしながら理解できる
  • 忘れても見返せばすぐコマンドが使える

※この記事は、GitHubでオススメされる開発ワークフローのGitHub Flowを参考に作成しています。

Git インストール

Windowsの方は下記の記事を参照してGitをインストールしてください。

関連記事
5分でできるGit for Windowsインストール方法を紹介

  悩む人Windows に Git をインストールする方法がわからない そんな悩みを解決します。 超簡単なので文字読まなくてもOK! 10回以上ポチポチするだけ 現役エンジニアが2020/ ...

続きを見る

Macの方は下記のサイトを参考にインストールしてください。
https://git-scm.com/download/mac

Git 初期設定

下記のコマンドを実行して、ユーザー名とメールアドレスを設定してください。

git config --global user.name ユーザー名

git config --global user.email メールアドレス

下記コマンドで設定を確認できます。

git config --global --list

リモートリポジトリ作成

GitHubにサインインし、自分のリポジトリページを開いてください。

GitHubリポジトリ作成ボタン

「New」をクリックします。

GitHubリポジトリ作成ページ

リポジトリ名、リポジトリの種類(公開or非公開)などを入力して、「Create repository」をクリックします。

  • READMEはGitHub上でリポジトリの説明ページとなるので作っておいた方が良いです。
  • .gitignoreは、gitリポジトリの管理対象外ファイルを定義するためのファイルです。
    管理するソフトウェアの言語に合わせて選択してください。
  • licenseは、このソフトウェアの権利に関するルールを定義します。任意のものを選択してください。

GitHubリポジトリページ

リポジトリが作成されると、上記のように表示されます。

ローカルリポジトリ作成

GitHubに作成したリモートリポジトリから、ご自身の端末にローカルリポジトリを作成します。

GitHubクローンURLコピーボタン

GitHubのリポジトリページで「Code」をクリックして、リポジトリのURLをコピーしてください。

ご自身の端末にて、ローカルリポジトリを作成したいディレクトリでコマンドプロンプトを開き、下記のコマンドを実行してください。
ユーザ名とパスワードを求められたら入力してください。

git clone リポジトリURL

例:

git clone https://github.com/tako-xyz/testrepository.git
cd testrepository

Issue作成

作業開始時にどんな理由で作業しているのかを記録するために Issueを作っておきましょう。
Issueは、課題管理の課題みたいなものです。

GitHub Issue作成ボタン

リポジトリの「Issues」タブを開いて、「New issue」をクリックします。

GitHub Issue作成ページ

Issueのタイトル、説明文を入力して「Submit new issue」をクリックします。

GitHub Issueページ

Issueが作成されると、番号が振られます。
その番号を作業用ブランチ名で使用するので覚えておいてください。

作業用ブランチ作成

masterブランチ(デプロイ用のリポジトリ)に影響を与えないで、変更作業を行うために作業ごとにブランチを作成します。

GitHubのリポジトリページの「master」をクリックしてください。

GitHub ブランチ作成ページ

「Switch branches/tags」の欄にブランチ名を入力して「Create branch: xxxx from 'master'」をクリックしてブランチを作成してください。

ブランチ命名規則としては、下記のような形式がオススメです。

  • バグ修正目的の場合:bugfix/#issueNo_作業名
  • 機能追加目的の場合:feature/#issueNo_作業名

  • ブランチとは、ある時点でのリポジトリの状態を複製して別名で保存したものになります。
  • masterブランチは、デプロイ可能な状態のリポジトリのことです。
  • 作業用ブランチは、バグ修正や機能追加のためにmasterブランチから分岐させたリポジトリのことです。

リモートリポジトリの情報を取得するために下記のコマンドを実行します。

git pull

リモートブランチの一覧を表示するために下記のコマンドを実行します。

git branch -r

下記のように作業用ブランチ名が確認できます。

origin/HEAD -> origin/master
origin/feature/#1_add_xxxx
origin/master

この作業用ブランチ名の「origin/」を除いたものを使って、ブランチを切り替えるために下記のコマンドを実行します。

git checkout feature/#1_add_xxxx

ブランチが切り替わったことを確認するために下記のコマンドを実行します。

git branch

「*」がついてるものが現在のブランチを表しています。

* feature/#1_add_xxxx
master

ファイル変更

ご自身の好きな方法でファイルの作成や修正などを行ってください。

GitHubのリポジトリには、認証情報が含まれるデータをアップロードしないように気を付けてください。
悪意のあるユーザのBotが巡回しており不正アクセスに使用される可能性があります。

  • 内部サービスや環境の認証情報
  • 秘密鍵ファイル
  • ハードコードされたユーザ名とパスワード
  • ハードコードされたAPIキー
  • ハードコードされたOauthトークン

変更のコミット

ファイルの修正が終わったら、変更されたファイルを確認するために下記のコマンドを実行します。

git status

下記のように表示されます。

On branch feature/#1_add_xxxx
Your branch is up-to-date with 'origin/feature/#1_add_xxxx'.
Untracked files:
(use "git add <file>..." to include in what will be committed)

index.html

nothing added to commit but untracked files present (use "git add" to track)

変更されたファイルをインデックスに追加するために下記のコマンドを実行します。
これは変更履歴に乗せる対象ファイルを一時的に選択する操作になります。

git add ファイル名

インデックスに追加したファイルの変更をコミットするために下記のコマンドを実行します。
これは変更履歴のデータに名前を付けて保存するような操作になります。

git commit -m "変更理由のコメント"


例:

git add index.html
git commit -m "add index.html"

リモートリポジトリ反映

リモートリポジトリに変更を反映させるために下記のコマンドを実行します。

git push origin 作業用ブランチ名

実例:

git push origin feature/#1_add_xxxx

プルリクエスト作成

GitHubのリポジトリのページを開くと、pushされたことを示すメッセージが表示されています。

GitHub プルリクエスト作成ボタン

「Compare & pull request」をクリックして、プルリクエストを作成します。GitHub プルリクエスト作成ページ

プルリクエスト名と説明文を入力して、プルリクエストを作成するために「Create pull request」をクリックしてください。
説明文にIssue番号を「#No」のように入れるとIssueとプルリクエストを紐づけることができます。

GitHub プルリクエストページ

自動的に作業用ブランチが、masterブランチにマージできるかチェックしてくれます。

この状態でレビュアー担当者がいれば、レビューしてもらうといいでしょう。

レビュー

レビュアー担当者にここでコードのダメ出しやコメントをもらってください。

修正が必要であれば、また変更をコミットしてPushすればここに反映されます。

変更の差分を確認したい場合は、「File changed」のタブをクリックしてください。

GitHub 差分確認ボタン

下記のように変更の一覧が確認できます。

GitHub 差分確認ページ

テスト

レビューしてもらったら、検証環境などで作業用ブランチのソフトウェアをテストするといいでしょう。
検証環境にて、GitHubからソースを取得してデプロイ後、テストしてください。
※ここのやり方は、開発チームによってやり方が異なると思いますので、一例になります。

下記のコマンドは作業例になります。

例:

git clone https://github.com/tako-xyz/testrepository.git
cd testrepository
git branch -r
git checkout feature/#1_add_xxxx
git branch

  1. リポジトリをクローン
  2. リモートブランチの一覧を表示
  3. ブランチを切り替え
  4. 現在のブランチ確認

作業用ブランチをマージ

コードレビュー、検証環境でテストがOKだった場合、作業用ブランチをmasterブランチにマージ(統合)しましょう。

GitHub プルリクエストマージボタン

「Merge pull request」をクリックしてください。

GitHub プルリクエストマージページ

紐づいたIssueをクローズするためにコメントに「close #No」と入れて、「Confirm merge」をクリックしてマージしてください。

GitHub プルリクエストマージ完了

マージが完了すると、上記のように表示されます。

この時点でブランチが必要ない場合は、「Delete branch」をクリックして削除してください。

デプロイ

masterブランチにマージしたら、本番環境へデプロイしてください。

デプロイの方法は、ソフトウェアの性質、環境に合わせて検討してください。

作業用ブランチ削除

作業用ブランチが必要なくなった場合、削除しましょう。

GitHub ブランチを表示

リポジトリページの「Branch」をクリックしてください。

GitHub ブランチページ

ゴミ箱のアイコンをクリックして、作業用ブランチを削除してください。

GitHub ブランチ削除後表示

削除が完了すると、上記のように表示されます。

ローカルリポジトリのローカルブランチを削除したい場合、下記のように作業してください。

マージ済みのブランチを表示するために下記のコマンドを実行してください。
※ 「*」がついてないものがマージ済みのブランチになります。

git branch --merged

マージ済みの作業用ブランチを削除するために下記のコマンドを実行してください。

git branch -d マージ済み作業用ブランチ名

例:

git branch --merged

git branch -d feature/#1_add_xxxx

 

基本的な流れは以上です。

CI&CDが整っていたらまた微妙に違ってくるかと思いますが、各組織の運用ルールに合わせて対応していただければと思います。

閲覧ありがとうございました。

参考ページ:

-ツール
-, , ,

© 2020 tako-xyz