0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

毎回調べるから自分用にまとめた:Gitで複数コミットをまとめてプッシュする手順

Posted at

🎯 毎回調べるから自分用にまとめた: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~NNはまとめたい数に応じて調整
コマンドミス時 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

おわりに

履歴をきれいに保つことは、レビューをスムーズに進めるためにも重要です。この手順は何度も使うので、忘れてもすぐ見返せるようにこの記事を残しておきます。


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?