GitHub Tips

カテゴリ:,

投稿日:2021年9月13日

ブランチについて

複数人で1つのプロジェクトを開発する場合、同時に機能追加やバグ修正を行うことがあります。
開発を円滑に進めるためのバージョン管理として、Gitのブランチ機能を利用します。

ブランチのコマンドは以下になります。

# 現在のブランチを確認
git branch

# ブランチ作成
git branch [ブランチ名]

# ブランチ切り替え
git checkout [ブランチ名]

# ブランチの作成と切り替え
git checkout -b [ブランチ名]

当社のルール

ブランチの種類

ブランチの種類 命名規則説明
main main開発用のブランチ
staging stagingステージング環境
コミットするとステージング環境に自動デプロイ
master master本番環境
コミットすると本番環境に自動デプロイ
feature feature/[自分の名前]_[開発するもの]  各機能の開発用
bugfix bugfix/[自分の名前]_[修正するもの]  不具合による修正
hotfix hotfix/[自分の名前]_[修正するもの]  致命的不具合による修正

運用の流れ

当社ではブランチの構成として main (開発時) -> staging -> master (本番サーバー)で開発を行っています。
基本は main からブランチ (feature / bugfix / hotfix) を切って開発を行います。

開発フロー

main => feature | bugfix | hotfix => main => staging => master

main => hotfix => master

マージとコードレビュー

開発者がGitHubにブランチをプッシュします。

# 初回のみ
git push -u origin HEAD

# 二回目からは省略できます
git push

GitHubにアクセスし前回プッシュしたリポジトリでPull requestsをクリックしNew pull requestをクリックする

プルリクエストに作成画面に移動したら下記の必要事項を入力して、Create pull requestをクリックします。

  1. [Assignees]の歯車アイコンをクリックして誰にプルリクエストをするのか選択します。 
    例)ここでは自分を選択しています
  2. Titleにブランチ全体の変更の概要がわかるように入力します(作業中などの場合、Titleにつける接頭語を参照)
    例)README.mdを修正
  3. コメント欄に変更内容の意図や根拠を入力します
    例)READMEが書かれていなかったので追記しました

Titleにつける接頭語について

接頭語意味
[WIP]work in progless の略で作業中
[Pending]保留中
なし完成

コメント欄に変更内容の意図や根拠を入力するようにします。
例)READMEが書かれていなかったので追記しました。

プルリクエストが作成できたらコードレビューをしてもらいます。
マージできるようになるまで修正とコードレビューを繰り返し、最終的にマージしてもらいます。

コンフリクトへの対応

上記の開発フローに沿って開発を行うことにより、他者の変更によるコンフリクトの発生頻度を抑えることができます。
基本的にmainブランチのコードはコードレビューを通したものになるので、mainブランチのコードを正として扱います。
適宜コミュニケーションを取りながら、自分のコードが古くないか、他者のコードが正しいかどうかを判断しながらマージを行います。

コンフリクトが発生したときの対処法

まずmainブランチを最新の状態にします。

# mainブランチを最新の状態にする(リモートからローカルに反映)
git pull origin main

# 二回目からは省略できます
git pull

コンフリクトしたファイルを修正します。

青のマーカの箇所がmainブランチでの変更なので、mainブランチの変更を取り入れて修正し、再度コミットしプッシュすることでコンフリクトを解消できます。

サブモジュールの利用

場合によっては、Gitのサブモジュールを使用することもあります。
サブモジュールを使用している場合、以下のコマンドを使用してサブモジュールをクローンする

git submodule init
git submodule update
技術ブログ 一覧へ戻る

FLARESへのご相談・ご依頼

制作依頼・サービスについて不明な点ございましたらお気軽にお問い合わせください

資料ダウンロード

会社やサービスに関する資料ダウンロードをご希望の方は右の資料ダウンロードページからご利用ください。

採用情報

採用応募をご希望の方は応募フォームからご応募ください。

採用サイトへ