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

bookリベース操作の実行

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

mainブランチへの変更のリベース

変更をリベースする前に、まずmainブランチに切り替えて最新の変更をプルする必要があります。

次に、コミットツリーを確認します。

現時点では、mainブランチとfeature/paymentブランチの両方に、直近の共通の祖先以降のコミットがあります。これは、ファストフォワードマージが実行できないことを示しています。

これらのブランチをマージすると、3-wayマージが発生します。しかし、履歴を直線的に保ちたい場合は、feature/paymentブランチをmainブランチ上にリベースします。これを行うには、feature/paymentブランチに切り替えてgit rebaseコマンドを実行します。

ファストフォワードマージ

リベースが成功したので、もう一度コミットツリーを確認:

予想通り、コミット履歴は現在直線的になっており、最新のコミットはfeature/paymentブランチ上にある。ここで、mainブランチに対してシンプルなファストフォワードマージを実行可能:

両方のブランチが同じコミットを指していることを、最新のコミットを確認して検証:

フィーチャーブランチの削除

mainブランチには支払いシステムが実装された最新のコミットが含まれているため、ローカルおよびリモートのfeature/paymentブランチを安全に削除できます。次のコマンドはリモートブランチを削除します:

次に、ローカルブランチを削除します:

最後に、すべての変更をリモートリポジトリにプッシュできます:

feature ブランチがローカルおよびリモートの両方で削除されたことを確認するには、次のコマンドを実行します。これは、すべて-a は all の略)ローカルおよびリモートのブランチを一覧表示します:

ご覧のとおり、feature/payment ブランチは正常に削除され、現在は mainjohn/test の2つのブランチと、それぞれのリモート対応ブランチのみが存在します。

全体として、リベースはまだ共有されていないローカルの変更に対しては有効ですが、すでにリモートリポジトリに公開され、他の協力者によってダウンロードされている可能性がある変更に対しては重大な問題を引き起こすことがあります。他の人が使用しているコミットをリベースすると、コミット履歴が書き換えられるため、混乱や競合が発生する可能性があります。

一般的なルールとして、これらの問題を防ぐために、リモートリポジトリにプッシュされた変更をリベースすることは避けてください。

question mark

feature/paymentmain にリベースした後、なぜ git merge feature/payment はファストフォワードマージを行うのですか?

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

すべて明確でしたか?

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

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

セクション 3.  5

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 3.  5
some-alt