Bird
Raised Fist0
Gitdevops~5 mins

Cherry-picking multiple commits in Git - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does git cherry-pick do?
It copies the changes introduced by a commit from one branch and applies them onto the current branch.
Click to reveal answer
intermediate
How do you cherry-pick multiple commits in one command?
Use git cherry-pick commit1 commit2 commit3 listing all commit hashes separated by spaces.
Click to reveal answer
intermediate
What is a common problem when cherry-picking multiple commits?
Conflicts can happen if the commits change the same lines as the current branch. You must resolve conflicts manually.
Click to reveal answer
intermediate
How can you cherry-pick a range of commits?
Use git cherry-pick start_commit^..end_commit to pick all commits from start_commit to end_commit inclusive.
Click to reveal answer
beginner
What should you do if a cherry-pick results in conflicts?
Resolve the conflicts in files, then run git cherry-pick --continue to finish applying the commits.
Click to reveal answer
Which command cherry-picks commits a1b2c3 and d4e5f6 onto the current branch?
Agit cherry-pick a1b2c3..d4e5f6
Bgit merge a1b2c3 d4e5f6
Cgit cherry-pick a1b2c3 d4e5f6
Dgit rebase a1b2c3 d4e5f6
How do you cherry-pick all commits from abc123 to def456 inclusive?
Agit cherry-pick abc123^..def456
Bgit cherry-pick abc123-def456
Cgit cherry-pick def456..abc123
Dgit cherry-pick abc123..def456
What should you do after resolving conflicts during a cherry-pick?
Agit cherry-pick --abort
Bgit cherry-pick --continue
Cgit commit --amend
Dgit reset --hard
If you want to cancel a cherry-pick in progress, which command do you use?
Agit cherry-pick --abort
Bgit cherry-pick --continue
Cgit reset --soft
Dgit revert
Cherry-picking is best described as:
AMerging two branches completely
BDeleting commits from history
CCreating a new branch
DCopying specific commits from one branch to another
Explain how to cherry-pick multiple commits and handle conflicts if they arise.
Think about the steps from selecting commits to finishing the process.
You got /4 concepts.
    Describe the difference between cherry-picking a range of commits and cherry-picking individual commits.
    Consider how you specify commits in the command.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the git cherry-pick command do when used with multiple commit hashes?
      easy
      A. It applies the changes from each specified commit onto the current branch.
      B. It merges the entire branch containing those commits into the current branch.
      C. It deletes the specified commits from the current branch.
      D. It creates a new branch with the specified commits only.

      Solution

      1. Step 1: Understand cherry-pick purpose

        The git cherry-pick command copies changes from specific commits to the current branch without merging the whole branch.
      2. Step 2: Effect of multiple commits

        When multiple commit hashes are listed, git applies each commit's changes one by one onto the current branch.
      3. Final Answer:

        It applies the changes from each specified commit onto the current branch. -> Option A
      4. Quick Check:

        Cherry-pick = copy specific commits [OK]
      Hint: Cherry-pick copies commits, it does NOT merge branches [OK]
      Common Mistakes:
      • Confusing cherry-pick with merge
      • Thinking it deletes commits
      • Assuming it creates a new branch
      2. Which of the following is the correct syntax to cherry-pick multiple commits with hashes a1b2c3 and d4e5f6?
      easy
      A. git cherry-pick --all a1b2c3 d4e5f6
      B. git cherry-pick a1b2c3,d4e5f6
      C. git cherry-pick -m a1b2c3 d4e5f6
      D. git cherry-pick a1b2c3 d4e5f6

      Solution

      1. Step 1: Review cherry-pick syntax

        The correct way to cherry-pick multiple commits is to list their hashes separated by spaces, not commas or flags.
      2. Step 2: Analyze options

        git cherry-pick a1b2c3 d4e5f6 uses spaces between commit hashes without extra flags, which is the correct syntax.
      3. Final Answer:

        git cherry-pick a1b2c3 d4e5f6 -> Option D
      4. Quick Check:

        Multiple commits separated by spaces [OK]
      Hint: Separate commit hashes by spaces, not commas [OK]
      Common Mistakes:
      • Using commas between commit hashes
      • Adding unnecessary flags
      • Using incorrect options like --all
      3. Given the following commands run on branch feature:
      git checkout feature
      git cherry-pick 123abc 456def
      What will happen if both commits apply cleanly?
      medium
      A. Only the first commit 123abc will be applied, the second will be ignored.
      B. The changes from commits 123abc and 456def will be added to the feature branch in order.
      C. Git will merge the branches containing those commits into feature.
      D. An error will occur because multiple commits cannot be cherry-picked at once.

      Solution

      1. Step 1: Understand cherry-pick with multiple commits

        When multiple commits are cherry-picked, git applies each commit sequentially if no conflicts occur.
      2. Step 2: Effect on current branch

        Since the branch is feature, the changes from both commits will be added in the order listed.
      3. Final Answer:

        The changes from commits 123abc and 456def will be added to the feature branch in order. -> Option B
      4. Quick Check:

        Multiple commits apply sequentially [OK]
      Hint: Cherry-pick applies commits one by one in order [OK]
      Common Mistakes:
      • Assuming only first commit applies
      • Confusing cherry-pick with merge
      • Thinking multiple commits cause errors
      4. You run git cherry-pick abc123 def456 but get a conflict on the second commit. What should you do to continue cherry-picking the remaining commits?
      medium
      A. Fix the conflict, then run git cherry-pick --continue to proceed.
      B. Abort the cherry-pick with git cherry-pick --abort and start over.
      C. Run git reset --hard to discard changes and continue.
      D. Use git cherry-pick --skip immediately without fixing conflicts.

      Solution

      1. Step 1: Handle conflicts during cherry-pick

        When a conflict occurs, you must manually fix it before continuing.
      2. Step 2: Continue cherry-pick process

        After fixing conflicts, running git cherry-pick --continue resumes applying remaining commits.
      3. Final Answer:

        Fix the conflict, then run git cherry-pick --continue to proceed. -> Option A
      4. Quick Check:

        Fix conflicts + git cherry-pick --continue [OK]
      Hint: Fix conflicts then run git cherry-pick --continue [OK]
      Common Mistakes:
      • Skipping conflicts without fixing
      • Aborting instead of continuing
      • Resetting hard loses work
      5. You want to cherry-pick commits 111aaa, 222bbb, and 333ccc from branch dev onto main. However, 222bbb depends on changes in 111aaa, but 333ccc is unrelated. Which command correctly cherry-picks only the dependent commits in order?
      hard
      A. git checkout main && git cherry-pick 333ccc 111aaa 222bbb
      B. git checkout main && git cherry-pick 222bbb 111aaa
      C. git checkout main && git cherry-pick 111aaa 222bbb
      D. git checkout main && git cherry-pick 111aaa,222bbb

      Solution

      1. Step 1: Identify dependent commits

        Since 222bbb depends on 111aaa, both must be cherry-picked in order to avoid errors.
      2. Step 2: Choose correct command syntax and order

        git checkout main && git cherry-pick 111aaa 222bbb checks out main and cherry-picks commits in the correct order separated by spaces.
      3. Final Answer:

        git checkout main && git cherry-pick 111aaa 222bbb -> Option C
      4. Quick Check:

        Dependent commits cherry-picked in order [OK]
      Hint: Cherry-pick dependent commits in order, skip unrelated [OK]
      Common Mistakes:
      • Cherry-picking commits in wrong order
      • Including unrelated commits unnecessarily
      • Using commas instead of spaces