LinuxのGitブランチとマージ入門|git branch・checkout・mergeでWSL2・VPSのコードを管理する方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)【Linux入門】初心者のための基礎知識・講座 > LinuxのGitブランチとマージ入門|git branch・checkout・mergeでWSL2・VPSのコードを管理する方法
「Gitのブランチって、一体何をするものなの?チームで開発するとき、なぜブランチが必要なの?」

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に取り込める
・コンフリクトが起きても落ち着いてファイルを修正すれば解決できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

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'

「Switched to a new branch」と表示されたら成功です。
もう一度 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

「Fast-forward」と表示されたのはマージが競合なく成功したサインです。
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.txtgit 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サーバー構築の「型」を体系的に身につけたい方へ、
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。