Gitで新しいブランチを作成する方法|初心者でも分かる完全ガイド

「Gitで新しいブランチを作りたいけど、どうすればいいんだろう?」

そんな疑問を持っているあなたに、この記事ではGitのブランチ作成方法を分かりやすく解説します。実は、ブランチ作成には3つの方法があって、それぞれ使い分けができるんです。

この記事を読めば、自分に合った方法でスムーズにブランチを作成できるようになりますよ。

スポンサーリンク

そもそもブランチって何?

ブランチとは、日本語で「枝」という意味です。プログラム開発において、メインの開発ライン(幹)から分岐して、新しい機能を追加したりバグを修正したりするための「作業用の枝」のことを指します。

たとえば、あなたがウェブサイトを作っているとしましょう。メインのサイトは順調に動いているけど、新しいログイン機能を追加したい。でも、その作業中にメインのサイトが壊れたら困りますよね。

そこでブランチの出番です。ブランチを作れば、メインのコード(mainブランチやmasterブランチと呼ばれます)に影響を与えずに、安全に新機能の開発ができるんです。

作業が完了したら、その枝をメインに統合(マージ)すれば、新機能が本番環境に反映されます。

ブランチを作成する3つの方法

Gitでブランチを作成する方法は、主に3つあります。それぞれ特徴があるので、状況に応じて使い分けましょう。

方法1:git branchコマンドで作成(基本)

最もシンプルな方法です。この方法では、ブランチの作成だけを行います。

git branch 新しいブランチ名

たとえば、feature-loginという名前のブランチを作りたい場合:

git branch feature-login

これでブランチが作成されました。ただし、この方法には注意点があります。ブランチは作成されましたが、まだそのブランチに切り替わっていません

作成したブランチに切り替えるには、別途コマンドが必要です:

git checkout feature-login

または、新しいコマンドを使う場合:

git switch feature-login

方法2:git checkout -b で作成と切り替えを同時に(従来の方法)

「ブランチを作ったら、すぐにそのブランチで作業したい」というのが普通ですよね。そんなときは、この方法が便利です。

git checkout -b 新しいブランチ名

例:

git checkout -b feature-login

このコマンドは、ブランチの作成と切り替えを一度に行います。従来から広く使われている方法で、多くの開発現場で今も使われています。

-bオプションが「ブランチを作成してから切り替える」という意味を持っています。

方法3:git switch -c で作成と切り替えを同時に(推奨の方法)

Git バージョン2.23(2019年リリース)から、より分かりやすい新しいコマンドが登場しました。

git switch -c 新しいブランチ名

例:

git switch -c feature-login

この方法はgit checkout -bと同じ結果になりますが、何をしているのかがより明確です。

git checkoutは元々、ブランチの切り替えだけでなく、ファイルの復元など複数の機能を持っていました。そのため、初心者にとっては「今、自分が何をしているのか」が分かりにくかったんです。

一方、git switchはブランチの切り替え専用コマンドです。-cオプションは「create(作成)」の意味で、新しいブランチを作成しながら切り替えます。

現在は、このgit switch -cを使う方法が推奨されています。

既存のブランチから新しいブランチを作る

通常、新しいブランチは現在いるブランチから作成されます。しかし、特定のブランチから新しいブランチを作りたい場合もありますよね。

たとえば、developブランチからfeature-searchブランチを作成したい場合:

git switch -c feature-search develop

または従来の方法なら:

git checkout -b feature-search develop

これで、developブランチをベースにした新しいブランチが作成され、そのブランチに切り替わります。

現在のブランチを確認する方法

「今、自分はどのブランチにいるんだろう?」と迷ったときは、次のコマンドで確認できます。

git branch

実行すると、ブランチの一覧が表示されます:

  develop
* feature-login
  main

アスタリスク(*)が付いているのが、現在作業中のブランチです。

リモートリポジトリのブランチも含めて確認したい場合は:

git branch -a

これで、ローカルとリモート両方のブランチが表示されます。

リモートリポジトリに新しいブランチをpushする

ローカルで作成したブランチを、GitHubやGitLabなどのリモートリポジトリに反映させるには、pushコマンドを使います。

git push -u origin ブランチ名

例:

git push -u origin feature-login

-uオプション(--set-upstreamの省略形)は、ローカルブランチとリモートブランチの追跡関係を設定します。これを最初に一度設定しておけば、2回目以降はgit pushだけで済むようになります。

つまり、初回だけgit push -u origin feature-loginと入力し、その後の作業ではgit pushだけでOKということです。

ブランチ名の付け方のコツ

ブランチ名は自由に付けられますが、チーム開発では一定のルールに従うのが一般的です。

よく使われる命名規則

機能開発の場合:

feature/機能名

例:feature/user-loginfeature/search-function

バグ修正の場合:

bugfix/修正内容

例:bugfix/header-alignmentbugfix/payment-error

緊急の修正の場合:

hotfix/修正内容

例:hotfix/security-patch

命名のポイント

  • 小文字を使う:大文字と小文字が混在すると混乱するため
  • ハイフンで単語をつなぐ:スペースは使えないので、ハイフン(-)で区切ります
  • 分かりやすい名前にするfeature/loginよりfeature/user-loginの方が明確
  • 長すぎない:250文字以内が推奨されています

よくある質問とトラブル対処

Q1. ブランチを作成したのに切り替わらない

git branchコマンドだけを使った場合は、ブランチが作成されただけで切り替わっていません。

git switch ブランチ名

または

git checkout ブランチ名

で切り替えましょう。

最初から切り替えも一緒にやりたい場合は、git switch -cまたはgit checkout -bを使ってください。

Q2. ブランチの切り替えができない(変更が保存されていないとエラーが出る)

error: Your local changes to the following files would be overwritten by checkout:
    file.txt
Please commit your changes or stash them before you switch branches.

このエラーが出たら、現在の変更をコミットするか、一時保存(stash)する必要があります。

方法1:変更をコミットする

git add .
git commit -m "作業中の変更を保存"
git switch 別のブランチ名

方法2:変更を一時保存する

git stash
git switch 別のブランチ名
# 後で作業を再開するときは
git stash pop

stashは「隠す」という意味で、変更を一時的に退避させます。後でgit stash popを実行すれば、退避させた変更を元に戻せます。

Q3. すでに同じ名前のブランチが存在するとエラーが出る

git switch -c feature-login

を実行したときに、すでにfeature-loginというブランチが存在する場合、エラーが表示されます。

既存のブランチに切り替えたい場合は、-cオプションを外してください:

git switch feature-login

別の名前で新しいブランチを作りたい場合は、名前を変更しましょう:

git switch -c feature-login-v2

Q4. リモートにあるブランチをローカルに持ってきたい

他の人が作成したブランチなど、リモートにだけ存在するブランチをローカルに作成したい場合:

まず、リモートの最新情報を取得します:

git fetch

次に、リモートブランチと同じ名前でローカルブランチを作成して切り替えます:

git switch リモートブランチ名

Git 2.23以降では、リモートに同名のブランチがあれば、自動的にそのブランチを追跡してくれます。

古いGitバージョンを使っている場合は:

git checkout -b feature-search origin/feature-search

のように、origin/ブランチ名を指定する必要があります。

Q5. ブランチを削除したい

不要になったブランチは削除できます。

ローカルブランチの削除:

git branch -d ブランチ名

例:

git branch -d feature-login

ただし、まだマージされていないブランチの場合は、削除を防ぐためにエラーが出ます。それでも強制的に削除したい場合は:

git branch -D ブランチ名

リモートブランチの削除:

git push origin --delete ブランチ名

例:

git push origin --delete feature-login

実践的なワークフロー例

実際の開発現場でよく使われる流れを見てみましょう。

新機能を開発する場合

  1. 最新のmainブランチに移動して、最新状態を取得
git switch main
git pull origin main
  1. 新しいブランチを作成して切り替え
git switch -c feature/user-profile
  1. コードを書いて、変更をコミット
git add .
git commit -m "ユーザープロフィール機能を追加"
  1. リモートにpush
git push -u origin feature/user-profile
  1. プルリクエストを作成して、レビュー後にmainブランチにマージ

緊急のバグ修正の場合

  1. 現在の作業を一時保存
git stash
  1. mainブランチから修正用ブランチを作成
git switch main
git pull origin main
git switch -c hotfix/critical-bug
  1. バグを修正してコミット
git add .
git commit -m "重大なバグを修正"
  1. リモートにpushして、すぐにマージ
git push -u origin hotfix/critical-bug
  1. 元の作業に戻る
git switch feature/user-profile
git stash pop

まとめ

Gitでブランチを作成する方法は、主に3つあります。

基本の方法:

git branch ブランチ名

ブランチを作成するだけ(切り替えは別に必要)

従来の方法:

git checkout -b ブランチ名

ブランチ作成と切り替えを同時に実行

推奨の方法:

git switch -c ブランチ名

ブランチ作成と切り替えを同時に実行(より直感的)

初心者の方は、まずgit switch -cを覚えておけば大丈夫です。この方法なら、何をしているのかが分かりやすく、間違いも少なくなります。

ブランチを使いこなせるようになれば、安全に新機能を開発したり、複数の作業を並行して進めたりできるようになりますよ。

最初は戸惑うかもしれませんが、何度か練習すれば自然に使えるようになります。ぜひ実際に試してみてください!

コメント

タイトルとURLをコピーしました