6

別のリポジトリからコミットの範囲を選択したい場合があります。私はそれを行う2つの方法を知っています。

1.1。

git checkout myBranch
git cherry-pick begin..end

また

  1. git rebase --onto myBranch begin end

最初のバージョンは覚えやすいと思います。しかし、私は、チェリーピッキングが歴史を少し壊すので、マージすることと比較してどのように悪であるかについてたくさん読みました。しかし、私がまだ理解していないのは、コミットの範囲をチェリーピッキングすることと、それらをリベースすることの間に違いがあるかどうかです。--onto

違いはないはずだと思う傾向があります。私は間違っていますか?

4

3 に答える 3

1

リベースとチェリーピッキングは、マージにとっても同様に「悪い」ものです。どちらも、取得した変更の元のコミットのIDを忘れてしまいます。その結果、後のマージで同じ変更を複数回適用しようとする場合があります。

于 2012-07-11T08:22:47.040 に答える
1

これら 2 つのコマンドは同等です。マージされていないコミットを見つけてターゲット ブランチにリプレイするために、通常のリベースが行う作業を行っているだけです。

于 2012-07-11T08:32:41.713 に答える
-2

実際、チェリーピッキングはリベースよりもこの点で悪ではありません。チェリーピッキングはコミットの複製を作成しますが、リベースは実際にコミットを移動します(したがって履歴を書き換えます)。

どちらもマージよりも邪悪であり、私の正直な意見では、これは通常最悪の選択です。

于 2012-07-11T08:22:51.933 に答える