Gitの基本(add・commit・push)を覚えた次に壁になるのが「ブランチ」です。
「ブランチを切る」「マージする」という言葉はよく聞くのに、具体的に何をすればいいのか分からない方も多いでしょう。
この記事では、GitのブランチとマージをWSL2やVPSで実際に手を動かしながら解説します。
git branch・git checkout・git mergeの3つのコマンドを使いこなし、本番環境のコードを壊さずに安全に作業できる手順を身につけることを目標にします。
実行環境: Ubuntu 24.04 LTS(WSL2・VPS)で動作確認済み
この記事のポイント
・ブランチはコードの「分岐した作業コピー」で、本番を壊さずに新機能を開発できる
・git checkout -b ブランチ名 で新しいブランチを作りながら切り替えられる
・git merge ブランチ名 でブランチの変更をmainに取り込める
・コンフリクトが起きても落ち着いてファイルを修正すれば解決できる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Gitのブランチとは何か?(なぜ必要なのか)
ブランチを一言で説明すると「コードの作業コピーを別の流れで管理する仕組み」です。たとえば、Webサイトを運営していて「トップページのデザインを変えたい」と思ったとします。
直接ファイルを書き換えると、うまくいかなかったときに元の状態に戻すのが大変です。
ブランチを使うと、次のような流れで安全に作業できます。
・main(元のコード)はそのままにしておく
・feature/top-redesign(作業コピー)を作って変更を加える
・うまくいったら main に取り込む(マージする)
・失敗したらブランチを捨てるだけで main は傷つかない
Gitが入っているかどうかは次のコマンドで確認できます。
# Gitのバージョン確認 git --version
# 実行結果の例(Ubuntu 24.04 LTS) git version 2.43.0
ブランチの基本操作(最頻出の手順)
1. ブランチの一覧を確認する(git branch)
まず、現在のリポジトリにどんなブランチがあるかを確認します。練習用のリポジトリがない場合は、先に次のコマンドで作成してください。
# 練習用ディレクトリを作成してGitリポジトリを初期化する mkdir ~/git-practice && cd ~/git-practice git init echo "最初のファイル" > index.txt git add index.txt git commit -m "first commit"
# ブランチ一覧を表示する git branch
# 実行結果の例 * main
main ブランチだけがある状態です。2. 新しいブランチを作成して切り替える(git checkout -b)
新しいブランチを作りながら、そのブランチに移動するにはgit checkout -b を使います。# feature/add-about というブランチを作成して切り替える git checkout -b feature/add-about
# 実行結果の例 Switched to a new branch 'feature/add-about'
もう一度
git branch を実行すると、現在のブランチが切り替わっているのを確認できます。# ブランチ一覧を再確認する git branch
# 実行結果の例(* が feature/add-about に移った) * feature/add-about main
feature/機能名 のように分類するのが実務では一般的です。3. 変更を加えてコミットする
このブランチで新しいファイルを追加して、コミットしてみましょう。# 新しいファイルを作成してコミットする echo "会社概要ページです" > about.txt git add about.txt git commit -m "会社概要ページを追加"
# 実行結果の例 [feature/add-about 3a7f2c1] 会社概要ページを追加 1 file changed, 1 insertion(+) create mode 100644 about.txt
feature/add-about ブランチだけに記録されています。main ブランチに戻っても、about.txt はまだ存在しません(後の手順で確認します)。4. mainブランチに戻る(git checkout main)
mainブランチに戻るにはgit checkout を使います。# mainブランチに切り替える git checkout main
# 実行結果の例 Switched to branch 'main'
ls で確認すると、about.txt がないことが分かります。# mainブランチのファイル一覧を確認する ls -la
# 実行結果の例(about.txtはまだない) total 12 drwxrwxr-x 3 user user 4096 Sep 20 10:00 . drwxr-xr-x 6 user user 4096 Sep 20 10:00 .. drwxrwxr-x 8 user user 4096 Sep 20 10:05 .git -rw-rw-r-- 1 user user 18 Sep 20 10:01 index.txt
これがブランチの最大のメリット「メインのコードを守りながら作業できる」という点です。
ブランチをmainにマージする
1. マージを実行する(git merge)
作業が完了したブランチの変更をmain に取り込む操作を「マージ」と呼びます。mainブランチにいる状態で
git merge を実行します。# mainブランチにいることを確認してからマージする git branch git merge feature/add-about
# 実行結果の例(Fast-forward マージ) Updating 8c2b3a0..3a7f2c1 Fast-forward about.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 about.txt
ls を実行すると、about.txt がmainブランチにも追加されています。2. マージ後にブランチを削除する(git branch -d)
マージが完了したブランチは不要になるので削除しましょう。# マージ済みブランチを削除する(-d は安全削除) git branch -d feature/add-about
# 実行結果の例 Deleted branch feature/add-about (was 3a7f2c1).
-d オプションはマージ済みのブランチだけ削除する「安全削除」です。マージしていないブランチを強制削除したい場合は
-D(大文字)を使いますが、変更が消えるため注意してください。トラブルシュート:よくあるエラーと対処法
「コンフリクト(競合)」が発生した場合
2つのブランチで同じファイルの同じ行を変更した場合、マージ時にコンフリクトが発生します。# コンフリクト発生時のエラー表示の例 Auto-merging index.txt CONFLICT (content): Merge conflict in index.txt Automatic merge failed; fix conflicts and then commit the result.
# コンフリクトマーカーの例(index.txt) <<<<<<< HEAD mainブランチで書いた内容 ======= featureブランチで書いた内容 >>>>>>> feature/add-about
・
nano index.txt または vim index.txt でファイルを開く・「<<<<<<<」「=======」「>>>>>>>」のマーカー行ごと削除して、残したい内容に整理する
・ファイルを保存して
git add index.txt → git commit を実行するコンフリクトは怖いものではありません。「どちらの変更を使うか選んで、マーカーを消してコミットする」だけです。
「Already up to date」と表示される場合
# マージを実行したら既に最新と言われた git merge feature/add-about # Already up to date.
ブランチを間違えていないか(mainにいるか)、コミット済みかを確認してください。
ブランチの切り替えができない場合
# 切り替え失敗の例 git checkout main # error: Your local changes to the following files would be overwritten by checkout: # index.txt # Please commit your changes or stash them before you switch branches.
一時的に変更を退避する
git stash を使うか、変更をコミットしてから切り替えてください。# 変更を一時退避してブランチを切り替える git stash git checkout main # 作業に戻るときは git stash pop で取り出す git stash pop
本記事のまとめ
この記事では、Gitのブランチとマージの基本操作を解説しました。| やりたいこと | コマンド |
|---|---|
| ブランチ一覧を確認する | git branch |
| 新しいブランチを作成して切り替える | git checkout -b ブランチ名 |
| 既存のブランチに切り替える | git checkout ブランチ名 |
| ブランチをmainにマージする | git merge ブランチ名 |
| マージ済みブランチを削除する | git branch -d ブランチ名 |
| 変更を一時退避する | git stash |
| 退避した変更を取り出す | git stash pop |
| 全ブランチのコミット履歴をグラフ表示する | git log --oneline --graph --all |
まずは
git checkout -b test/hello でブランチを作り、ファイルを変更してコミット、最後に git merge で取り込むまでを一度やってみてください。一度動かすと、「なぜブランチが必要か」が体感で分かります。
次に読む記事(Linux入門シリーズ)
・Linuxのサービス管理入門|systemctlで起動・停止・自動起動を設定する方法
・Linuxのパッケージ管理入門|apt・dnfで初心者がソフトを安全にインストールする方法
・Linuxのパイプとリダイレクト入門|コマンドをつなげて処理を効率化する方法
・LinuxのjqコマンドでJSONを処理する入門|DockerやAPIの結果をターミナルで見やすく整形する方法
・LinuxでOllamaを使ってAIと会話する入門|WSL2やVPSに無料でLLMをインストールする方法
実務で使うLinuxスキル 7テーマ
・tmuxコマンドでターミナルを分割・管理する方法(シェルスクリプト)
・ssh-keygenコマンドでSSH公開鍵認証を設定する方法(セキュリティ)
・Apacheのタイムアウト設定を変更・確認する方法(サーバー構築)
・straceコマンドでプロセスのシステムコールを追跡する方法(トラブルシューティング)
・ncコマンドでネットワーク接続をテストする方法(ネットワーク)
・rsyncコマンドでファイルを同期・転送する方法(ファイルシステム・ストレージ)
・Linuxでポート番号の状態を確認するコマンド(現場コラム)
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:LinuxのjqコマンドでJSONを処理する入門|DockerやAPIの結果をターミナルで見やすく整形する方法
- この記事の属するカテゴリ:【Linux入門】初心者のための基礎知識・講座へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます