Git チーム開発時の作業用ブランチの作り方

要約
クローンしたら、作業用ブランチを作成して、main の最新の変更を取得してから作業を開始しましょう。もし main に新しい変更があれば、`git fetch origin` を使ってコンフリクトを避けるのが安全です。
意見はこのエリアに表示されます
アイキャッチ画像

必要なコマンド表

ブランチを作るために、以下のコマンドを使います。よく使うので、覚えておくと便利です。表は横にスクロールできます。

コマンド説明
git cloneリモートリポジトリをローカルに複製する
git remote -vリモートリポジトリの URL を確認する
git checkout -b ブランチ名新しいブランチを作成してそのブランチに切り替える
git pull origin mainリモートの main ブランチの変更を取得してマージする
git push origin ブランチ名ローカルの変更をリモートリポジトリにプッシュする
git fetch origin最新のリモートリポジトリ情報を取得(変更は適用されない)
git merge origin/main取得した main ブランチの変更を現在のブランチに統合する
git status現在の変更状況を確認する
git log --onelineコミット履歴を簡潔に表示する
git diffコミット間の差分を確認する
git add変更をステージングする
git commitステージングされた変更をコミットする
git revert特定のコミットを打ち消す新しいコミットを作成する
git reset --hardローカルの状態を強制的にリセットする(※慎重に使用)

upstream

upstream はチーム開発や fork ベースの開発 でとても重要な概念ですが、状況によっては不要です。チームリポジトリに直接招待された場合、fork ではなく、GitHub 上で collaborator(共同編集者)として招待されている場合は、upstream(チームの本番リポジトリや fork 元のリポジトリ) は不要です。

それでは、実際の作業手順を見ていきましょう。

1. clone する

リモートリポジトリをローカルに複製します。フォルダを作成しなくても git clone した際に自動的に作成されます。

xxxx は、実際のパラメーターを入力してください。

2. リモートリポジトリの情報を表示する

リモートの URL をチェックして、プッシュできるか確認します。これでリモートリポジトリ (origin) の URL を確認できます。これはリモートリポジトリに影響を与えないので実行しても問題ないです。

3. ブランチ作成

ブランチ dev を作成。main ブランチから dev を作成し、そのまま dev に移動します。

ブランチ戦略の補足

ブランチ名説明
main本番環境にデプロイされるコードを保持する安定版
dev開発中のコードを集約する統合ブランチ。複数の feature/* ブランチの作業結果がここにマージされる
feature/*新機能や改善点を開発するためのブランチ。例: feature/login-page
wip/*作業途中(Work In Progress)の個人ブランチ。レビュー前の状態などに使用

ブランチ名は意味のある名前にすると、他の開発者が意図を把握しやすくなります。以下は一例です。

ブランチ名内容
feature/login-formログインフォームの実装
fix/typo-in-readmeREADME の誤字修正
refactor/user-serviceユーザーサービスのリファクタリング
hotfix/crash-on-startup緊急でアプリ起動時のクラッシュ修正
chore/update-dependencies依存パッケージの更新
wip/signup-validationサインアップバリデーション作業中(未完了)

ブランチ名に日本語は避け、スラッシュ(/)でカテゴリと作業内容を区切るとわかりやすくなります。

4. main の最新の変更を dev に統合

main ブランチに新しい変更があった場合、それを dev ブランチに取り込む必要があります。作業ブランチが古い状態だと、マージ時にコンフリクトが起きやすくなります。リモートには影響せず、ローカルで最新の main を dev に統合するだけです。

4. dev に移動

5. dev の変更をリモートにプッシュ

ローカルで作業していた dev ブランチを GitHub 上のリモートにも作成します。他のメンバーと共有するには、リモートに push する必要があります。push はリモートに影響を与えますが、この段階ではまだ本番コードには関係しません。

6. main の最新の変更を取得(安全な方法)

もし main に新しい変更があれば、以下の方法でコンフリクトを避けるのが良いです。

  • git fetch origin → main の最新情報を取得(変更を適用しない)
  • git merge origin/main → main の変更を dev に統合

git pull と git fetch + git merge の違い

  • git pull は裏で git fetchgit merge を自動で実行します。
  • そのため、コンフリクトがある場合に自動でマージが始まり、対処しづらくなることがあります。
  • git fetchgit merge の手順であれば、最新の変更内容を事前に確認できるため、落ち着いてマージ作業ができます。

例えば以下のように作業できます。

6. 作業用のブランチを作成(例: 新機能追加)

作業ごとに新しいブランチを作ることで、機能ごとの変更を管理しやすくなります。dev や main に直接コミットせず、安全に開発を進めるための基本です。ブランチ名には何の作業かが分かるような名前をつけるのが望ましいです。

7. 作業完了後、dev にマージ

作業が終わったら、dev ブランチに変更を統合します。このタイミングで、他の作業ブランチの変更と合わせて検証できます。push することで、チーム全体の dev 状態を最新に保てます。

よくあるトラブルと対処法

コンフリクトが起きた場合は、該当ファイルに以下のような記号が表示されます。

どちらの変更を残すか選択して、ファイルを編集した後 git add して git commit しましょう。

  • 万が一、間違って main に直接 push してしまった場合は、revert を使って変更を取り消すことができます。

または、履歴ごと戻す場合は git reset を使います(注意して使用してください)。

8. GitHub で PR を作成し、main に統合

GitHub 上での PR のポイント

  • PR を作成するときは、以下のような情報を含めるとレビューがスムーズです。
    • 何を変更したか(What)
    • なぜ変更したか(Why)
    • 動作確認内容(How)

例:

  • PR の作成後は、必要に応じて Reviewers や Assignees を設定しましょう。

PR 文章を提出する

一応、Notion などでPR依頼を伝えます。

マージされたら

Github の、main > view all branches に移動。Your braches から削除します。

補足:CLI に不慣れな方向けのアドバイス

コマンドライン操作に不安がある場合は、以下のような GUI クライアントもおすすめです。

  • GitHub Desktop
  • Sourcetree
  • Tower

また、現在の状態を確認したいときは以下のコマンドが便利です。

作業の前後にはこれらのコマンドで状況を把握すると、トラブルを避けやすくなります。

Explore More
関連記事はありません。