ギット チェリーピック git では、あるブランチからコミットを選択し、それを別のブランチに適用することを意味します。これは、次のような他の方法とは対照的です。 マージ そして 追い越し これは通常、多くのコミットを別のブランチに適用します。
git Cherry-pick は次のようなものです リベース 、 先進的なコンセプトであり、強力なコマンドでもあります。これは主に、ブランチ全体をマージしたくないが、一部のコミットが必要な場合に使用されます。
チェリーピックはいつ使用しますか?
開発者が現在どのブランチにいるかを認識できず、誤ってメイン ブランチにコミットせずに別のブランチにコミットしたとします。それを修正するには、まず走らなければなりません git ショー 、 次に、コミットを保存し、メイン ブランチをチェックアウトし、そこにパッチを適用し、同じコミット メッセージでコミットします。ただし、これはすべて、1 つのコマンドを使用するだけで自動的に実行できます。 チェリーピック。
よりよく理解するには、次の図を参照してください。

チェリーピック前
警察次長

チェリーピック後
チェリーピックのコマンドは次のとおりです。
git cherry-pick>
コミットハッシュ: コミット ハッシュは、Git によって生成される一意の識別子です。各コミットには 1 つのコミット ハッシュがあります。
str を int に変換する
注記: このコマンドを使用するときは、コミットを適用するブランチ上にいることを確認してください。
使い方 チェリーピック?
以下に作成したプロジェクトでのcherry-pickコマンドの使用方法を段階的に説明します。
ステップ1: 開く git bash そして、という名前の新しいプロジェクトを作成します サンプル そして、を使用してリポジトリを初期化します 暑いです 指示。
ステップ2: の作成 ' 。TXT' ファイルを使用して 私たちは コマンドをプロジェクトに追加します。たとえば、インデックス ファイルをサンプル プロジェクトに追加し、コミットを作成して Enter キーを押す前にコミット メッセージを書き込みます。
注記: を実行した後、 私たちは コマンドで、「:wq」と入力してファイルを保存し、終了します。
次の方法でコミットを確認できます git ログ 簡単にコマンドを実行します:
ステップ 3: ここで 2 つのバージョンがあると仮定して、次のコマンドを使用して 2 つの異なるブランチを作成します。 gitブランチ コマンドを実行してブランチに移動します。次のように 2 を使用します。 git チェックアウト 指示。
注記: 以下の図に示すように git Branch コマンドを実行すると、すべてのブランチを簡単に表示できます。
ステップ 4: ここで、何らかの新しい機能に取り組みたいとします。そのため、新しい機能ファイルを作成して追加するとします。たとえば、feature.txt を次のように使用します。 私たちは そして 追加 それぞれ以下のようにコマンドを実行します。次に、コミット メッセージを使用して変更をコミットします。
JavaオブジェクトからJSONへ
以下に示すように、git log コマンドでコミットを確認できます。

最初のコミットではブランチ 1 が存在し、ブランチ 2 ではさらに前方に移動しており、現在ブランチ 2 の機能に取り組んでいることが明確に示されています。
ステップ5: ここで、機能にバグが見つかり、これと同じバグが 1 ブランチにも存在することがわかったとします。
そして今、以下に示すように、fix.txt ファイルを追加してバグや問題を修正しようとしています。それを現在のブランチ (つまり 2) に追加し、必要な変更をコミットするとします。
最終的なコミットを確認します。
ステップ6: 今、 ブランチ 2 のバグは修正しましたが、この修正をブランチ 1 にも追加する必要があります。ただし、この機能の作業がまだ続いている可能性があるため、このブランチ 2 をブランチ 1 にマージしたくありません。
したがって、このシナリオでは、この特定のコミットを厳選することができます。そのためには、 ハッシュ 価値 上の図で強調表示されている場合は、 checkout を使用してブランチ 1 に移動し、次のコマンドを使用します チェリーピック そして、先ほどコピーしたハッシュを貼り付けます。
上記から明らかなように、以前はチェリーピッキングを行う前にはindex.txtしかありませんでしたが、今では最初のブランチにもfix.txtファイルがあることがわかります。
今確認してみると git log –oneline , ブランチ 1 にもコミットが入っていることがわかります。
Cherry-pick の重要な使用例
以下に、Cherry-Pick の一般的なアプリケーションをいくつか示します。
Linuxのexportコマンドとは何ですか
- 誤って間違ったブランチにコミットを行った場合は、チェリーピックを使用して必要な変更を適用できます。
- プロジェクトのフロントエンドとバックエンドの両方で同じデータ構造が使用されると仮定します。その後、開発者はチェリーピックを使用してコミットを選択し、それをプロジェクトの自分の部分に使用できます。
- バグが見つかった時点で、できるだけ早くエンドクライアントに修正を伝えることが重要です。
- 場合によっては、コンポーネント ブランチが古くなり、メイン ブランチにコンバージされず、リクエストが閉じられることがあります。しかし、git はそれらのコミットを決して失わないため、厳選して元に戻すことができます。
チェリーピック使用のデメリット
チェリーピックは、コピーコミットや、チェリーピックが機能する多くの状況を引き起こす可能性があるため、常に使用すべきではありません。あらゆる点を考慮すると、従来のマージが好まれます。また、2 つ以上のブランチからのコミットがさまざまな内容で同様のコード行を更新し、一方のコミットをもう一方のブランチに git チェリーピックする状況でも、競合が発生します。
結論
Git のチェリーピック コマンドは、ブランチ間で特定のコミットを選択的に適用するための強力なツールです。これは間違いを修正したりコードを共有したりするのに最適ですが、使いすぎると、特にコミットが同じコード行に触れる場合に問題が発生する可能性があります。したがって、これを賢明に使用して、クリーンで効率的なコード履歴を維持してください。