0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘】リモート反映済みのコミットをまとめる手順

Last updated at Posted at 2025-07-16

手順

例えば、3 つ前のコミットに戻ってまとめたいとき

# 3つ前のコミットに戻す(変更はステージングエリアに残る)
git reset --soft HEAD~3

# 新しいコミットを作成
git commit -m "feat: hogehoge"

# force-push
git push --force-with-lease origin HEAD

想定されるケース

1. コミット履歴の整理

  • 細かいコミットが積み重なって履歴が汚くなった
  • 開発中の試行錯誤のコミットをまとめたい
  • レビュー前にコミットを整理したい

2. 機能単位でのコミット分割

  • 1 つの機能実装が複数のコミットに分かれている
  • 関連する変更を 1 つのコミットにまとめたい

3. 作業中のコミットの整理

  • 作業中の一時的なコミット("WIP"、"fix typo"など)を本格的なコミットにまとめる
  • デバッグ用のコミットを削除したい

補足

--softについて

git reset --softは、コミットを取り消すが変更内容はステージングエリアに残すオプションです。

  • --hard: 変更内容も完全に削除
  • --mixed(デフォルト): 変更内容はワーキングディレクトリに残す(ステージングエリアからは削除)
  • --soft: 変更内容はステージングエリアに残す

つまり、--softを使うと「コミットだけ取り消して、変更はそのまま次のコミットに含められる」状態になります。

--force-with-leaseについて

git push --force-with-leaseは、通常の--forceより安全なオプションです。

  • --force: 強制的にプッシュ(他の人の変更を上書きしてしまう可能性)
  • --force-with-lease: リモートブランチが予想通りの状態の時のみプッシュ

--force-with-leaseを使うと、他の人が同時にプッシュしていた場合は失敗するため、意図しない変更の上書きを防げます。

注意点

  • 既にプルリクエストが Review Ready のとき: レビュワーの混乱を招くので使うべきではない。あくまでレビュー依頼前の手順。
  • CI/CD: コミットハッシュが変わるため、CI のキャッシュなどに影響する可能性
0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?