0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

git branchとは?ブランチの本当のメリット・デメリットと現場で困らない使い方

0
Posted at

git branchを今さら人に聞けないエンジニアへ:ブランチとは何か、なぜ現場で必須なのか
正直に言うと、ブランチって「便利そう」まではわかるけど、実戦で使ってないと永遠に“ふわっとした概念”のままです。
しかも、チームではGit操作自体はやってるから、余計に「今さら聞けない…」になりがち。
このページは、git branchをほぼ使ったことがない“知ったかぶりエンジニア”が、現場で困らないところまで一気に追いつくための実用記事です。

git branch(ブランチ)とは?一言でいうと

ブランチとは、同じリポジトリの中で、別の作業線(履歴の分岐)を作る仕組みです。
もっと噛み砕くと、「本番に影響しない別世界を作って、安心して作業できる」のがブランチです。

ブランチが無い世界の地獄(あるある)

  • main(またはmaster)で直接作業して、途中の未完成コミットが混ざる
  • 「とりあえず動く」状態を保てず、他メンバーの作業を止める
  • 緊急修正を入れたいのに、開発中の変更が邪魔で切り戻しが面倒
  • 誰の変更がどれか追いにくい(レビュー不能・責任境界が曖昧)

ブランチのリアルなメリット(現場で効くやつだけ)

メリット1:未完成の作業をmainに混ぜずに済む(事故率が激減)

ブランチ運用の本質はここです。mainは常に動く状態に保ち、作業はブランチで進めます。
「mainが壊れて全員の開発が止まる」を避けられます。

メリット2:レビューが成立する(差分が見える)

Pull Request(PR)/ Merge Request(MR)は、基本的にブランチ差分が前提です。
ブランチがあると、変更の意図・影響範囲・戻しやすさが一気に改善します。

メリット3:緊急対応(hotfix)が刺さる

本番で障害 → すぐ直したい。
でもmainに開発途中の大きな改修が入っていると、リリースできません。
ブランチ運用なら、本番と同じ地点からhotfixブランチを作って、最小修正だけを安全に出すことができます。

メリット4:「並行作業」が当たり前にできる

  • Aさん:新機能
  • Bさん:バグ修正
  • Cさん:リファクタ

全員が別ブランチで進め、レビューして順にmainへ。
これができると、チーム開発が“ワークフロー”になります

ブランチのリアルなデメリット(ここを知らないと嫌いになる)

デメリット1:マージが怖い(コンフリクト)

ブランチを切るほど、どこかで統合が必要になります。
同じ行や同じファイルを複数人が触ると、コンフリクト(競合)が起きます。

ただし、これは「ブランチが悪い」ではなく、統合の頻度が低い / ブランチが長生きしすぎが主原因です。

デメリット2:運用が雑だとブランチが墓場になる

  • ブランチが増えすぎて何が何だかわからない
  • 放置ブランチだらけ(どれが最新?)
  • 巨大PRでレビュー不能

対策はシンプルで、ブランチ命名・短命運用・小さめPRを守るだけで激減します。

デメリット3:rebase/force push周りで事故る

慣れるまでは、共有ブランチに対するrebaseやforce pushが事故ポイントです。
ルールさえ決めれば回避できます(後半にまとめます)。

まず覚えるべき前提:main(本線)と作業ブランチの関係

  • main:安定しているべき(デプロイ対象になりがち)
  • featureブランチ:新機能・改修
  • fixブランチ:バグ修正
  • hotfixブランチ:本番緊急修正(最短で出す)

今日から使える:ブランチ運用の最小セット(これだけで8割勝てる)

運用ルール(ミニマム)

  1. mainに直接コミットしない(原則)
  2. 作業は必ずブランチを切る
  3. PR/MRでレビューしてmainへ取り込む
  4. 取り込み後はブランチを消す(墓場化防止)
  5. ブランチは短命(理想:数時間〜数日)

ブランチ名のおすすめ(迷ったらこれ)

  • feature/xxx:新機能(例:feature/genba-search)
  • fix/xxx:通常のバグ修正(例:fix/login-redirect)
  • hotfix/xxx:本番緊急修正(例:hotfix/payment-500)
  • chore/xxx:雑務(依存更新、設定など)(例:chore/deps-update)

具体的な操作方法:ブランチ作業の基本フロー(コピペでOK)

0) まずは最新のmainを手元に持ってくる

git switch main
git pull

※ 古いgitだと git switch が無いことがあります。その場合は git checkout を使います(後述)。

1) ブランチを作って移動する

# 新しいブランチを作って、そのまま移動
git switch -c feature/genba-search

2) いつも通り作業してコミット

詳しくはこちら>>

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?