1

使ってるなら知りたい

git rebase --preserve-merges

リベースが再生しようとするコミットの正確なリストは何ですか。

より具体的に言うと、トピック ブランチとマスター ブランチがあるとします。以前は、マスターからトピックへのマージがいくつかありました (そのため、トピックがマスターから不必要に離れることはありません)。それ以来、トピックに関する追加のコミットがいくつかありました。

マスターのトピックを次のようにリベースするとします。

git checkout topic
git rebase --preserve-merges master

git がリベースの「一時領域」に保存し、マスターの上に再適用するコミットの正確なセットは何ですか?

回答が --onto およびその他のパラメーターの使用に一般化されている場合は、追加のクレジット。

比較のために、「git help rebase」は、再適用する一連のコミットが <upstream>..HEAD (この場合は master..topic) によって与えられることを明確に示しています。

4

1 に答える 1

0

おおよその線に沿っているようです

git log --ancestry-path `git merge-base master topic`..topic

(つまり、2 つのブランチ間のマージ ベースを見つけ、それとトピックの間のコミットを見つけます。)

しかし、それはまったく正しくありません。私のレポでは、これは rebase --preserve-merges が使用するものと非常によく似たコミットのリストを生成しますが、同一ではありません。(たとえば、コミットの合計数はまったく同じではありません。)

于 2013-04-09T19:44:50.043 に答える