問題:誰かが開発した機能をテストしたいのですが、それはひどく時代遅れのリモートブランチにしか存在しません。
- チェリーピックはどのように問題を解決しますか?
- なぜgitamまたはgitapplyを使用しないのですか?
問題:誰かが開発した機能をテストしたいのですが、それはひどく時代遅れのリモートブランチにしか存在しません。
問題:誰かが開発した機能をテストしたいのですが、それはひどく時代遅れのリモートブランチにしか存在しません。
マージまたはリベースすると、多くの古い変更が発生し、競合する可能性があります。
チェリーピッキングでは、1つの変更セットを取得し、それを別のブランチに対する新しいコミットとして再生します。
これは、履歴なしで1つのコミットを別のブランチにコミットする場合に便利です。
このオプションを使用すると便利な-x
ので、コミットメッセージにはチェリーが選択された場所のメモが含まれます。
なぜgitamまたはgitapplyを使用しないのですか?
git applyはパッチ(ファイル)を適用するためのものであり、gitamは一連のパッチを適用するためのものであるためです。gitcherry-pickはコミットを適用します-つまり、自分のリポジトリからのコミットと、他のリポジトリからインポートしたコミットを適用します。
git-cherry-pick-いくつかの既存のコミットによって導入された変更を適用します
[...]
1つ以上の既存のコミットが与えられた場合、それぞれが導入する変更を適用し、それぞれに新しいコミットを記録します。これには、作業ツリーがクリーンである必要があります(HEADコミットからの変更はありません)。
したがって、cherry-pick
コミットすると、git
そのコミットの変更(そのdiff
)を取得して現在の作業ディレクトリに適用しようとし、現在のコミットと同等の新しいコミットを作成しますcherry-pick
。
これは、別の履歴行で別のコミットの変更をやり直す方法です。
変更を加えるだけでなく、cherry-pick
作成者などの元のコミットの情報も保持します。
最後に、cherry-pick
適用するコミットのグループを受け取ることができます。その場合cherry-pick
、時系列順に(古いものから)、コミットを1つずつ実行するように動作します。
問題:
誰かが開発した機能をテストしたいのですが、それはひどく時代遅れのリモートブランチにしか存在しません。
それは問題を解決します:
チェリーピッキングの最初の欠点は、重複するコミットが発生することであるため、最後のポイントは重要です。しかし、あなたの場合、それは問題ではありません。
もう1つの欠点は、チェリーピッキングするコミットに、(その古いブランチの)以前のコミットに基づく機能依存性がある可能性があることです。
言い換えれば、そのコードは、他の古いコミットの他のコード(厳選されていない)のためにのみ機能します。
それを検出するのは難しい場合があります。