git revert の動作は、いまだにややこしいと思います。多大な苦痛と誤解の後、git revert は特定のコミットに戻すのではなく、特定のコミットを無効にすることを知りました 。これまでのところ、git cherry-pick は使用していません。
これら 2 つの git コマンドのそれぞれについて詳しく説明していただけますか? いつ、どのように使用するのが好きですか?
git revert の動作は、いまだにややこしいと思います。多大な苦痛と誤解の後、git revert は特定のコミットに戻すのではなく、特定のコミットを無効にすることを知りました 。これまでのところ、git cherry-pick は使用していません。
これら 2 つの git コマンドのそれぞれについて詳しく説明していただけますか? いつ、どのように使用するのが好きですか?
git cherry-pick
「指定されたコミットをパッチに変換し、このパッチをここに適用する」のようなものです。
git revert
「指定されたコミットをパッチに変換し、このパッチを(のようにpatch -R
)「反転」してここに適用する」のようなものです。
どちらのコマンドも競合を引き起こす可能性があります。
Cherry-pick は、マージされていない (現在のコミットからの親リンクでは到達できない) コミットで使用されます。元に戻すは通常、マージされたコミットで使用されます。
元に戻すコミットを元に戻すには、別の元に戻すコミットを作成する必要があります ("Revert of 'Revert of ...'" のようなコミット メッセージが表示されます)。