🎯 毎回調べるから自分用にまとめた:Gitで複数コミットをまとめてプッシュする手順
はじめに
Gitで作業していると、コミットをまとめたくなる場面があります。コミットが細かくなってわかりづらくなっていたりしていた時。そんな時毎回手順をググっていたので、自分用に手順とポイントを整理しておきます。インタラクティブリベース(git rebase -i
)が中心です。
前提
- 作業ブランチ上で複数のコミットがある
- リモート(GitHubなど)にプッシュする前に、コミットを1つにまとめたい
- 可能な限り最新の
main
ブランチの内容に追従しておく必要がある
基本の作業フロー
1. 最新のmainブランチを取得
git fetch origin
※必要に応じて別リモート(例:upstream
)から取得
2. 作業ブランチに切り替え
git checkout feature/your-branch-name
3. mainブランチに追従する(rebase)
git rebase origin/main
※追従が不要な場合はこのステップはスキップ可能
4. コミットをまとめる(インタラクティブリベース)
git rebase -i HEAD~3 # 直近3コミットをまとめたい場合
5. エディタでの操作例
以下のような履歴があるとします:
$ git log --oneline
d4e8c7a 修正: コメント文の修正
a1b2c3d 追加: 入力チェック処理を追加
9f8e7d6 初期コミット: 機能追加
リベースコマンド実行後、エディタが開きます:
pick 9f8e7d6 初期コミット: 機能追加
pick a1b2c3d 追加: 入力チェック処理を追加
pick d4e8c7a 修正: コメント文の修正
編集後(まとめる)
pick 9f8e7d6 初期コミット: 機能追加
s a1b2c3d 追加: 入力チェック処理を追加
s d4e8c7a 修正: コメント文の修正
コミットメッセージの統合画面:
機能追加: 入力チェック処理とコメントの修正を含む初期実装
6. リモートに強制プッシュ
git push origin feature/your-branch-name --force
※ --force-with-lease
の使用も推奨される場面あり(安全に履歴を更新)
よくある補足・注意点
項目 | 内容 |
---|---|
git remote -v |
リモートの確認(origin , upstream など) |
squash対象数 |
HEAD~N のN はまとめたい数に応じて調整 |
コマンドミス時 |
git rebase --abort で中止、git reflog で復旧も可能 |
forceの注意 | 他人と共有しているブランチには使用しないこと |
チートシートまとめ
git fetch origin
git checkout feature/your-branch
git rebase origin/main
git rebase -i HEAD~3
git push origin feature/your-branch --force
おわりに
履歴をきれいに保つことは、レビューをスムーズに進めるためにも重要です。この手順は何度も使うので、忘れてもすぐ見返せるようにこの記事を残しておきます。