コンテンツにスキップ
Zenn Dev Owayo Articles 3e72b600e504d5

Git rebaseでコミット整理とブランチ管理を改善

  • URL: https://zenn.dev/owayo/articles/3e72b600e504d5
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: git rebaseを使ったコミット履歴の整理と、ブランチの分岐元変更による開発フロー改善を体系的に解説した記事。fixup・squash・drop・editコマンドの使い分け、過去のコミットメッセージの変更方法、mergeの代わりにrebaseを使うメリットを扱っている。rebase後のforce pushについては–force-with-lease –force-if-includes(Git 2.30以降)による安全な方法が紹介されており、チーム開発での実践的な運用を想定した内容になっている。JetBrains IDEからのGUI操作についても併記されている。

詳細

  • コミット整理コマンド: fixup(前のコミットに統合しメッセージ破棄)、squash(統合しメッセージ編集)、drop(コミット削除)、edit(コミット分割・内容修正)
  • editコマンドの手順: git reset HEAD^ でコミットを取り消し → 個別にadd・commitで分割 → git rebase –continue
  • 過去コミットのメッセージ変更: git rebase -i で対象をeditに変更 → git commit –amend -m “…” → git rebase –continue
  • mergeをrebaseに変える利点: 直線的な履歴・MRに自分の変更のみ表示・コンフリクト解決が1回で済む
  • rebase後のforce pushに git push –force-with-lease –force-if-includes を推奨(Git 2.30以降)
    • –force-with-lease: ローカルが把握するリモート状態と実際のリモートを比較し、誰かが先にpushしていた場合は拒否
    • –force-if-includes: fetchした後に他者がpushした変更の誤上書きを防ぐ追加保護
  • ~/.gitconfigのエイリアス設定: pushf = push –force-with-lease –force-if-includes
  • JetBrains IDE: gitパネルからコミットを右クリックして「ここから対話的にリベース」でGUI操作可能