gitcherry-pickコマンドの詳細な説明

gitcherry-pickコマンド

コードをあるブランチから別のブランチに移動する場合、一般的な方法はmergeorrebase命令ですが、ブランチのコミット(または一部)を別のブランチに移動する場合は、cherry-pick命令。

1.コミットを転送します

たとえば、次の図に示すように、倉庫には、、masterおよびブランチfeature-newがあります。feature-old

画像-20220303215735790

次に、ブランチのGコミットをブランチにfeature-old適用feature-new次のコマンドを実行します。

# 假设现在在master分支

# 从master分支切换到feature-new(要接收别的分支某次提交转移的分支)
git checkout feature-new

# 执行转移操作:git cherry-pick <commitHash>
git cherry-pick G

上記のコマンドを実行した後のコードベースは次のようになります。

画像-20220303220039205

つまり、新しいコミットGがfeature-newブランチ最後に追加されました。

注: cherry-pick命令のパラメーターは、コミットのハッシュ値である必要はありません。また、ブランチ名も受け入れられます。これは、次のように、ブランチの最新のコミットが転送されることを示します。

# 将feature-old分支的最新一次提交H转移到当前分支
git cherry-pick feature-old

2.いくつかのコミットを転送します

git cherry-pick <commitHashA> <commitHashA> 

上記のコマンドは、2つのコミットAとBを現在のブランチに適用します。これにより、現在のブランチに2つの対応する新しいコミットが発生します。

一連の連続したコミットを転送する場合は、次の簡略構文を使用できます。

git cherry-pick A..B

上記のコマンドは、すべてのコミットをAからBに転送できます。正しい順序で配置する必要があります。コミットAは、コミットBよりも前である必要があります。そうでない場合、コマンドはエラーなしで失敗します。

注:上記のコマンドでは、コミットAはに含まcherry-pickれ。コミットAを含める場合は、次の構文を使用できます。

git cherry-pick A^..B 

3.コードの競合

3.1--続行

git cherry-pick --continue

ユーザーがコードの競合を解決した後、最初に変更されたファイルを一時記憶域(git add .)に再度追加し、次に上記のコマンドを使用してcherry-pickプロセスを続行します。

3.2--中絶

git cherry-pick --abort

コードの競合が発生した後、マージを中止して、操作前の状態に戻します。

3.3--終了

git cherry-pick --quit

コードの競合が発生した後、終了しますcherry-pickが、操作前の状態には戻さないでください。

おすすめ

転載: blog.csdn.net/weixin_49343190/article/details/123265405