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

リベースの基本

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

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

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

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

New feature will soon be integrated.

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

Add information about new feature in README.md

リベースの理解

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

Note
さらに学ぶ

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

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

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

3方向マージ

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

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

リベース
Note
注意

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

question mark

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

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

すべて明確でしたか?

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

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

セクション 3.  4

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 3.  4
some-alt