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操作可能