title: Why does cherry-pick not take all changes?
body: <p>I have the following situation in my commit history:</p>
  
  <pre><code>A1-...-A2
           \
            B1-B2-...-B3----------B4-B5
                        \        /
                         C1-C2-C3
  </code></pre>
  
  <p>I then did (after <code>git checkout A2</code> and a clean <code>git status</code>) 
  <code>git cherry-pick --no-commit C2..B5</code>.
  Now, <code>C2</code> introduced an important line in <code>file1.txt</code>, say</p>
  
  <pre><code>file1.txt
  -line x
  +line x with new part
  </code></pre>
  
  <p>and "line x with new part" exists in all commits C2 to B5.
  But after the cherry-pick, the change does not appear and <code>file1.txt</code> still looks like</p>
  
  <pre><code>...
  line x
  ...
  </code></pre>
  
  <p>where I expected a line "line x with new part". 
  I thought, I don't understand the changes and did </p>
  
  <pre><code>git diff HEAD C2 file1.txt
  file1.txt
  -line x
  +line x with new part
  </code></pre>
  
  <p>which shows the change as expected. I also checked
  <code>git diff HEAD C3 file1.txt</code>, <code>git diff HEAD B4 file1.txt</code>
   and <code>git diff HEAD B5 file1.txt</code> with the same result.</p>
  
  <p><code>git rev-parse HEAD</code> results in <code>A2</code> as intended and <code>git status</code>
  says "On branch A, Your branch is up to date with 'origin/A'. 
  nothing to commit, working tree clean".</p>
  
  <p>What do I miss? Any ideas?</p>
  
  <p>References:<br>
  <a href="https://stackoverflow.com/q/1994463/5784831">How to cherry pick a range of commits and merge into another branch</a>,<br>
  <a href="https://stackoverflow.com/q/881092/5784831">How to merge a specific commit in Git</a> and<br>
  <a href="https://stackoverflow.com/q/880957/5784831">Pull all commits from a branch, push specified commits to another</a> (I hope, 
  it is not an issue with a comment from the answer "...Likewise, cherry picking a commit from one branch to another basically involves generating a patch, 
  then applying it, thus losing history that way as well." from the answer.).</p>
  
  <p><strong>Edit @eftshift0:</strong> After <code>git cherry-pick --no-commit C1..B5</code> it looks correct at a first glance:<br>
  The Diff shows</p>
  
  <pre><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
  line x                         # current status of A2
  ||||||| parent of C2...
  line x                         # common ancestors of C1 and A2
  =======
  line x with new part           # from merge (new stuff)
  &gt;&gt;&gt;&gt;&gt;&gt;&gt; C2...
  </code></pre>
  
  <p>From the docs:</p>
  
  <blockquote>
    <p>git-cherry-pick - Apply the changes introduced by some existing
    commits SYNOPSIS</p>
    
    <p>DESCRIPTION
    Given one or more existing commits, apply the change each one
    introduces, recording a new commit for each. This requires your
    working tree to be clean (no modifications from the HEAD commit).</p>
  </blockquote>