【GIT】初学者向け、リベースの使い方

【GIT】初学者向け、リベースの使い方

リベースを使用してコミット履歴を編集・整理する方法をまとめました。コミットの結合、メッセージ修正、順序変更が可能です。

GIT #Github

【GIT】初学者向け、リベースの使い方

サムネイル

リベースを使用してコミット履歴を編集・整理する方法をまとめました。コミットの結合、メッセージ修正、順序変更が可能です。

更新日: 7/10/2025

基本的な使用方法

git rebase -i <対象コミット>

履歴の確認と編集開始

# 最新の3つのコミットを編集
git rebase -i HEAD~3

# 特定のコミットを起点に編集
git rebase -i abc1234

エディタ画面の構成

エディタが開くと以下のような表示になります

pick f7f3f6d 機能Aの実装
pick 310154e バグ修正
pick a5f4a0d タイポ修正

# Commands:
# p, pick = コミットをそのまま使用
# r, reword = コミットは使用、メッセージを編集
# e, edit = コミットで停止、内容を修正
# s, squash = 前のコミットと結合、メッセージも結合
# f, fixup = 前のコミットと結合、メッセージは破棄
# d, drop = コミットを削除

主要なアクション

複数コミットの結合(squash)

pick f7f3f6d 機能Aの実装
squash 310154e バグ修正
squash a5f4a0d タイポ修正

コミットメッセージの変更(reword)

reword f7f3f6d 機能Aの実装
pick 310154e バグ修正
pick a5f4a0d タイポ修正

コミット内容の修正(edit)

edit f7f3f6d 機能Aの実装
pick 310154e バグ修正
pick a5f4a0d タイポ修正

開発での使用

# フィーチャーブランチで作業
git checkout -b feature/user-auth

# 段階的なコミット作成
git add src/login.js
git commit -m "ログイン機能のベース実装"

git add src/validation.js  
git commit -m "入力バリデーション追加"

git add src/login.js
git commit -m "認証ロジック完成"

git add tests/auth.test.js
git commit -m "ユニットテスト追加"

git add src/login.js
git commit -m "バグ修正"

# コミット履歴を整理
git rebase -i HEAD~5

エディタでの編集例

pick abc1234 ログイン機能のベース実装
squash def5678 入力バリデーション追加
squash ghi9012 認証ロジック完成
fixup jkl3456 バグ修正
pick mno7890 ユニットテスト追加

この編集により、機能実装に関する4つのコミットが1つにまとまり、テストコミットは独立して残ります。

注意事項とトラブル対応

ISSUE - 課題

共有ブランチでのリベースは禁止です。他の開発者がすでに使用しているブランチで履歴を変更すると、プロジェクト全体に影響を与えます。

安全な使用範囲

# ❌ 危険:共有ブランチ
git checkout main
git rebase -i HEAD~3

# ✅ 安全:個人のフィーチャーブランチ
git checkout feature/my-work
git rebase -i HEAD~3

コンフリクトの解消

# コンフリクト発生時
git status
# コンフリクトファイルを手動で解決

git add <解決済みファイル>
git rebase --continue

# リベースを中止する場合
git rebase --abort

ワークフローへの組み込み

プルリク前の準備

# 作業完了後、履歴を整理
git rebase -i HEAD~10

# リモートブランチと同期
git fetch origin
git rebase origin/main

# プルリク作成
git push origin feature/user-auth

検索

検索条件に一致する記事が見つかりませんでした