git merge – ブランチを統合するコマンド

リポジトリ管理

git merge コマンドは、現在のブランチに別のブランチを統合(マージ)するためのコマンドです。
複数の開発ラインをまとめ、機能追加や修正を取り込むときに利用されます。

構文(Syntax)

git merge [オプション] <ブランチ名>

主なオプション一覧

オプション説明使用例
<ブランチ名>指定ブランチを現在のブランチにマージgit merge feature-x
--no-ffFast-forward を無効化し、必ずマージコミットを作成git merge --no-ff feature-x
--ff-onlyFast-forward 可能な場合のみマージを実行git merge --ff-only feature-x
--squash変更をまとめて 1 コミットにする(コミットは別途必要)git merge --squash feature-x
--abortコンフリクトが発生した場合にマージを中止git merge --abort
-m "メッセージ"マージコミットにメッセージを指定git merge -m "Merge feature-x"

実行例

基本的なマージ

git checkout main
git merge feature-x

出力例:

Updating abc123..def456
Fast-forward
 file1.txt | 2 ++
 1 file changed, 2 insertions(+)

マージコミットを必ず作成

git merge --no-ff feature-x

出力例:

Merge made by the 'recursive' strategy.
 file2.txt | 5 +++++

Fast-forward のみ許可

git merge --ff-only hotfix

Squash マージ(1コミットにまとめる)

git merge --squash feature-login
git commit -m "Squash merge feature-login"

コンフリクトが発生した場合

git merge feature-y

出力例:

Auto-merging app.py
CONFLICT (content): Merge conflict in app.py
Automatic merge failed; fix conflicts and then commit the result.

解決後:

git add app.py
git commit

マージを中止

git merge --abort

エラー例(存在しないブランチを指定)

git merge notfound

出力例:

fatal: not something we can merge in: notfound

関連コマンド

  • git rebase : マージの代わりに履歴を付け替えて統合する。
  • git checkout / git switch : マージ先ブランチに切り替える。
  • git log --graph : ブランチの統合履歴を確認する。

備考

  • Fast-forward マージでは新しいコミットは作成されず、ブランチの先頭が進むだけ。
  • --no-ff を指定すると履歴が分かりやすくなるが、コミット数は増える。
  • コンフリクト解決はマージ作業で最も重要な手順の一つ。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント