Git で Cherry-Pick を使用した複数のコミット

Abdul Jabbar 2023年1月30日
  1. Git における Git mergeGit Cherry-Pick コマンドの違い
  2. チェリーピッキング Git のバグ修正コミット
  3. Git での複数のチェリーピッキングコミット
  4. Git の特定のブランチでリベースコマンドを使用して必要な変更を選択する
Git で Cherry-Pick を使用した複数のコミット

分岐作業が完了したら、通常、既存のファイルにマージする必要はありません。

多くの場合、特定のブランチですべてを処理するのではなく、さまざまなブランチからいくつかの特定のコミットを取得する必要があります。これが、Git で git-cherry pick コマンドが使用される理由です。

Git における Git mergeGit Cherry-Pick コマンドの違い

git mergegit cherry-pick コマンドと同じです。git cherry-pick コマンドは、別のブランチから目的のブランチへの変更を吸収するために使用されます。

merge コマンドを使用している間、通常、他のブランチで行われたすべての変更を目的のブランチに吸収することができます。

しかし一方で、目的のブランチにいくつかの変更を加えるだけでよい場合もあります。そして、この目的のために、Git の cherry-pick コマンドが最も安全なオプションです。

チェリーピッキング Git のバグ修正コミット

チェリーピッキングは通常、バグ修正を以前のバージョンのソフトウェアに更新することとして説明できます。つまり、特定のブランチの数百のバグ修正から明示的なバグ修正コミットのみをフェッチすることを意味します。

次に、何らかの理由で、将来その特定のバグ修正コミットを使用します。このステートメントまたはコマンドは、主に、チームが本番アプリケーションまたはライブ Web またはデスクトップアプリケーションの重要なバグを修正する場合に使用されます。

このコマンドを使用して、チームはリリースを準備し、本番環境またはライブ環境にデプロイします。

Git での複数のチェリーピッキングコミット

場合によっては、異なるブランチで同時に複数のコミットで cherry-pick に適用したいことがあります。次に、最初に両方のコミットを識別し、それに次のコマンドを使用する必要があります。

その後、次のコマンドで以下に示すように、A ブランチと B ブランチの両方の間のドット表記を使用して、複数のコミットでチェリーピッキングを実行できます。

$ git cherry-pick A..B

このコマンドを適用した後、commit Acherry-pick に同化されません。

commit A も同化するために、次の構文を使用できます。

$ git cherry-pick A^..B
ノート
コミットは完全な順序で配置する必要があります。コミット Aコミット B より古い必要があります。これが完全な順序でない場合、使用されるコマンドは失敗するため、上記の条件に従って使用する必要があります。

Git の特定のブランチでリベースコマンドを使用して必要な変更を選択する

Git の rebase コマンドを使用して、特定のブランチで必要な変更またはコミットを選択する別の方法があります。このメソッドでは、オプション onto を使用してコマンドをリベースできます。

git rebase --onto は、次の 2 種類の場合に使用できます。

  • 最初の条件は、リポジトリ内の親ブランチを置き換えたいブランチがあることです。
  • 次に、リポジトリ内の現在のブランチからいくつかのコミットをすぐに削除したいと思います。

ブランチD で終わるブランチであり、これが C-Y を移動したいブランチであると仮定します。

git reset --hard Y

git rebase --onto A B

これは、特定のポイントから開始するか、目的のコミットにコミットすることでリベースするのに役立ちます。特定のブランチコミットで何をリベースし、どこをリベースするかを完全に管理できます。

著者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

関連記事 - Git Commit