私はこれをコマンドラインで完全に実行しましたが、何が起こっているのかを説明するためにSourceTreeからスクリーンショットを挿入します。
まず、C5コミットからコミットID(50da9c3)の最初の7桁または8桁を取得し、クリップボードまたはテキストエディットなどに挿入します。後で必要になります。
確認のため、開始状態は次のとおりです。
目的の場所に移動する手順は次のとおりです。
名前付きベースからコミットの構築を開始するために、ルート化されていない新しいブランチを作成します
git symbolic-ref HEAD refs/heads/base
ここで、gitからすべてのファイルとディレクトリを削除します
git rm --cached -r .
すべてのファイルが「追跡されていない」ので、ローカルの作業ディレクトリからそれらを削除します
git clean -d --force
次に、何も含まれていないコミットを作成します(これは、他のすべてが構築されるコミットになります)。
git commit --allow-empty -m'Initial Commit'
これで、ツリーは次のようになります。
次に、c5コミット(クリップボードにあるもの)をチェリーピックします。
git cherry-pick 50da9c3
次に、マスターブランチをベースブランチに再ルートします
git rebase --onto base --root master
これで、ベースブランチとc4-c5ブランチを削除できます
git branch -d base
git branch -D c4-c5branch
「初期コミット」はファイルのない空のコミットであることに注意してください。だまされないでください。C5コミットは、実際には最初のコンテンツベースのコミットです。