SourceTree GUIを使用してgit rebaseを実行する方法について混乱していると思います。 「master」と「dev」という2つのブランチがあります。ご覧のとおり、2つの支社は分岐しました。コマンドラインを使用して、「dev」ブランチでリベースを行いたいのですが、これは次のようになります。
git checkout dev
git rebase master
「dev」を右クリックし、「現在の変更をdevにリベースする」を選択するはずです。現在の変更は「マスターでの新しいコミット」を意味すると思います。ただし、このオプションを選択しても効果はありません。正しい手順は何ですか?
ただし、このオプションを選択しても効果はありません。
はい、現在の変更は現在のブランチの1つであるため、dev
です。
dev
の上にdev
をリベースすると、ノーオペレーションを意味します。
git checkout dev
git rebase master
つまり、現在のブランチはdev
:master
の上にリベースされます。
そのため、SourceTreeでは、master
を右クリックし(dev
がチェックアウトされている間)、次を選択する必要があります。
Rebase current changes onto master
「
rebase current changes onto [branch]
」の現在の命名は誤解を招きます。これを確認してください 改善議論SRCTREE-1578
。機能ブランチを開発に失敗させて最新の状態にしようとして困惑していることに気付いた後、「
rebase current changes onto $somebranch
」というラベルの付いた左ペインのコンテキストメニュー項目が、その名前が示すものとは実際に反対であることに気付きました:
現在のブランチを$ somebranchの状態にリベースします。
つまり、$somebranch
を現在のブランチにリベース(またはリベース)します。 (右?)現在のテキストの前置詞「
onto
」は誤解を招くものです。文のオブジェクト(私の例では$somebranch
)が変更を受け取ることを意味します。
実際、発生するのは反対です。
現在のブランチ名が存在しないため、混乱を招きます。文の構造を改善し、影響を受けるブランチの名前を含む言い回しを変更すると、明確にするために大きな勝利が得られます。
例えば:rebase $currentbranch to head of $somebranch rebase $somebranch onto $currentbranch