HOWTO · Git

Git ブランチをリベース

このチュートリアルでは、git fetch、git rebase、および git push コマンドを使用して、ローカルブランチをリモートマスターブランチにリベースするために実行できるさまざまな手順について説明します。

このページの内容

このチュートリアルでは、git fetchgit rebase、および git push コマンドを使用してローカルブランチをリモートマスターブランチにリベースするために実行できるさまざまな手順について説明します。

ローカルブランチを Git のリモートマスターブランチにリベースする

  1. 変更を取得します

    git fetch コマンドを使用して、リモートリポジトリからすべての変更を取得します。

    pc@JOHN MINGW64 ~/Git (Branch1)
    $ git fetch
    remote: Enumerating objects: 3, done.
    remote: Counting objects: 100% (3/3), done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), 610 bytes | 3.00 KiB/s, done.
    From https://github.com/Wachira11ke/Delftscopetech
     * [new branch]      main       -> origin/main
    
  2. 変更を加える

    git rebase コマンドを実行して、ブランチへの変更を統合します。以下の例では、現在のブランチをメインブランチからリベースします。

    pc@JOHN MINGW64 ~/Git (main)
    $ git rebase main
    Current branch main is up to date.
    

    コンフリクトが発生した場合は、git add . コマンドを使用して解決します。git add . コマンドの後には、git commit コマンドを実行しないでください。

    競合を解決したら、git rebase --continue を使用してプロセスを終了します。競合を解決した後でプロセスを中止する場合は、git rebase --abort コマンドを使用します。

  3. 変更をリモートリポジトリにプッシュします

    ローカルリポジトリにコンテンツをアップロードするには、以下に示すように git push -f コマンドを使用します。

    git push main HEAD -f
    

    -f は、リモートリポジトリ内の他の開発者によって行われた変更を上書きします。

    以下は、変更をリモートリポジトリにプッシュするためのより安全な方法です。

    git push --force-with-lease main HEAD
    

    このコマンドは、リモートリポジトリ内の他の開発者によって行われた変更を上書きしません。

    リベースとマージは、あるブランチから別のブランチへの変更を統合するために使用されます。リベースは、ブランチ履歴を乱すことなく機能ブランチを更新するプロセスであり、よりクリーンなコミット履歴を可能にします。

    これは、他のユーザーと共有すると競合するブランチを作成する可能性がある git merge の反対です。