Git コミットのチェリーピック

Git では、既存のブランチからコミット (一連の変更) をチェリーピックして、その変更を別のブランチに適用することができます。チェリーピックを使うと、次のようなことができます:

コマンドラインからコミットをcherry-pickできます。GitLab ユーザーインターフェイスでは、以下のこともできます:

コマンドラインからのcherry-pick

この説明では、デフォルトブランチ (main) から別のブランチ (stable) にコミットをチェリーピックする方法を説明します:

  1. デフォルトブランチをチェックアウトし、それをもとに新しいstable ブランチをチェックアウトします:

    git checkout main
    git checkout -b stable
    
  2. デフォルトブランチに戻ります:

    git checkout main
    
  3. 変更を加えてからコミットします:

    git add changed_file.rb
    git commit -m 'Fix bugs in changed_file.rb'
    
  4. コミットログを表示します:

    $ git log
       
    commit 0000011111222223333344444555556666677777
    Merge: 88888999999 aaaaabbbbbb
    Author: user@example.com
    Date:   Tue Aug 31 21:19:41 2021 +0000
    
  5. commit 行を特定し、その行の文字列と数字をコピーします。この情報はコミットの SHA (Secure Hash Algorithm) です。SHA はこのコミットの一意な識別子で、今後のステップで必要になります。

  6. SHA がわかったところで、stable ブランチをもう一度チェックしてみましょう:

    git checkout stable
    
  7. コミットをstable ブランチに cherry-pick して、SHA をあなたのコミットの SHA に変更します:

    git cherry-pick <SHA>