Git

The `git rebase` command is a tool that reapplies the commit history of a branch onto the end of another branch to maintain a linear and clean history.

git rebase

 Gitの git rebaseコマンドは、ブランチの履歴を整理するために使われる強力なツールです。

git rebaseの基本的な概念
git rebaseは、あるブランチの変更履歴を他のブランチの末尾に適用することで、履歴を再構成します。これにより、履歴が直線的になり、マージコミットなしでクリーンな履歴を保つことができます。
git rebaseの主な用途
履歴のクリーンアップ
開発中にコミットした小さな変更や、冗長なコミットメッセージを整理するために使います。
ブランチの最新化
他のブランチでの変更を取り込み、自分のブランチを最新の状態にするために使います。
git rebaseの種類
インタラクティブリベース (git rebase -i)
コミットを再構成する際に、どのコミットを残し、どのコミットをスカッシュ(まとめる)するか、どのコミットを修正するかを指定できます。
非インタラクティブリベース
自動的に指定されたブランチの末尾に変更を適用します。
git rebaseの基本的な使い方
基本的なリベース

Git Bash

git switch feature-branch
git rebase main
feature-branchブランチを mainブランチの最新のコミットに再適用します。
インタラクティブリベース

Git Bash

git checkout feature-branch
git rebase -i main
インタラクティブモードでリベースを実行し、履歴を編集します。

インタラクティブリベースの操作例

 git rebase -iコマンドは、インタラクティブなリベースを行うためのコマンドで、複数のコミットを編集、再配置、統合、削除する際に非常に便利です。このコマンドを使うと、コミット履歴をきれいにしたり、コミットメッセージを修正したりできます。

 git rebase -iを実行すると、次のような編集画面が表示されます。

Git Bash

pick e5f6d3a First commit
pick a3c7e8b Second commit
pick 3b9d2b9 Third commit

 この画面で、各コミットに対して以下のような操作が可能です。

git rebaseの注意点

リモートブランチに対してリベースを行う場合
他の開発者と共有しているブランチに対してリベースを行うと、コンフリクトが発生しやすくなります。一般的には、公開済みのブランチに対してリベースは避けるべきです。
コンフリクトの解決
リベース中にコンフリクトが発生した場合、コンフリクトを手動で解決し、git rebase --continueでリベースを続行します。