Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ リベースの基本 | より高度なワークフロー
GitHubの基礎

bookリベースの基本

メニューを表示するにはスワイプしてください

mainブランチでのコミット作成

リモートリポジトリのmainファイルを編集して、リモートのREADME.mdブランチに直接コミットを作成します。これにより、mainブランチとfeature/paymentブランチのコミット履歴が分岐します。

ファイルに追加された行は次のとおりです:

該当するコミットメッセージは次のとおりです:

リベースの理解

前章で述べたように、feature ブランチがレビューおよびテストされた後は、main ブランチにマージすることが推奨されます。これまではこの目的のために git merge コマンドのみを使用してきましたが、もう一つの方法として git rebase コマンドを利用することもできます。

Note
さらに学ぶ

リベース は、一連のコミットを新しい ベースコミット に移動または結合するプロセス。これは、あるブランチの変更を別のブランチに再適用することで、直線的なコミット履歴を作成するもの。

ブランチを作成すると、Git は両方のブランチで 最新のコミット を追跡します。一方のブランチだけに新しい変更がある場合、Git はファストフォワードで変更を適用できます。しかし、両方のブランチに新しい変更がある場合、Git は新しいマージコミットを作成し、三者間マージ となります。

ここでは、C4 がマージ前の feature/payment ブランチの最新コミットであった場合の三者間マージの例を示します。

しかし、3-wayマージは分岐した非線形の履歴のため、デバッグが複雑になることがあります。リベースを行うことで、コミットのベースを変更し、それらを新しいベースの上に再適用するため、Gitはファストフォワードマージを実行し、線形履歴を維持できます。

以下は、リベースがどのように実行されるかを示すアニメーションです(コミット識別子は実際のものとは異なります):

Note
注意

ブランチをリベースすると、その履歴を書き換えることになります。つまり、古いコミットは新しいものに置き換えられ、異なる識別子(ハッシュ値)を持つようになります。これは、異なるコードスナップショットをベースにしているためです。上記のアニメーションのように、feature/paymentブランチのコミットの識別子はリベース後に変更されました。

question mark

git rebasegit mergeの代わりに使う主な目的は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  4
some-alt