[Git]git rebaseで迷わないためのコマンド整理
広告Git
2025年12月28日
#はじめに
git rebase を使う時のまとめです。
#rebase コマンドの流れ
#rebase 開始
git rebase main#競合が発生したとき
git statusrebase in progress と表示されていれば rebase 中です。
#競合解決後
git add .
git rebase --continue#rebase を中断したい場合
git rebase --abort#問題のあるコミットをスキップ
git rebase --skip#rebase 完了後に push
git push --force-with-lease#rebase 中に競合が起きた場合の詳細手順
ここからは、実際に競合が起きたときの流れを詳しく見ていきます。
#① rebase 中に競合が発生
git rebase main
CONFLICT (content): Merge conflict in mochoto-example.txtこの時点で rebase は一時停止しています。
#② 競合ファイルを確認
git status
both modified: mochoto-example.txt
#③ 競合を解決する
競合ファイルには以下のような記述があります。
<<<<<<< HEAD
main ブランチの変更
=======
自分の変更
>>>>>>> feature
不要なマーカーを削除し、正しい内容だけを残します。
#④ 解決したファイルをステージング
git add mochoto-example.txtまたはすべてまとめて:
git add .#⑤ rebase を再開
git rebase --continue次のコミットで競合があれば再度停止
問題なければ rebase 完了
#rebase 後に必ず --force-with-lease を使う理由
Before:
A---B---C
After rebase:
A---B'---C'このため、通常の git push は拒否されます。
❌ 危険:git push --force git push --force
他人の push があっても 無条件で上書き
チーム開発では事故の原因になる
✅ 推奨:git push --force-with-lease git push --force-with-lease
自分が最後に確認したリモート状態と一致している場合のみ上書き
他人の作業を誤って消さない
#まとめ
rebase 後の競合解決は git add → git rebase --continue
rebase 後の push は 必ず --force-with-lease
--force は基本的に使わない
