Git cherry-pick causes merge conflict while merging does not
<p>I am trying to learn how to use git cherry pick, I read the manual pages that <code>git</code> returns by doing <code>git cherry-pick --help</code> but that did not seem to help.  I will try and explain the problem below. I have two branches <code>master</code> and <code>other</code>. </p>

<p><strong>On branch <code>master</code></strong>
The commit history is </p>

<pre><code>0x2 Second commit from master branch
0x1 Initial commit
</code></pre>

<p>And the only file in the repository that I am tracking <code>readme</code> has the following contents</p>

<pre><code>Some text
</code></pre>

<p><strong>On branch <code>other</code></strong>
The commit history is </p>

<pre><code>0x5 CHECKPOINT, going to cherry-pick onto master
0x4 second commit from branch other
0x3 first commit from other branch:
0x2 Second commit from master branch
0x1 Initial commit
</code></pre>

<p>And the contents of the <code>readme</code> file are </p>

<pre><code>Some text.

Adding some text from other branch.  Adding some more text.

Going to cherry-pick this commit.
</code></pre>

<p>The working directory is clean on both branches with no untracked changes. From this point on when I switch to the master branch and merge with <code>git merge other</code> the merge happens gracefully with no merge conflicts.  But when I try <code>git cherry-pick 0x5</code> there is a merge conflict, I get the following output from <code>git</code></p>

<pre><code>error: could not apply 0x5... CHECKPOINT, going to cherry-pick onto master
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add &lt;paths&gt;' or 'git rm &lt;paths&gt;'
hint: and commit the result with 'git commit'
</code></pre>

<p>And the <code>readme</code> file has the following contents</p>

<pre><code>&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
Some text
=======
Some text.

Adding some text from other branch.  Adding some more text.

Going to cherry-pick this commit.
&gt;&gt;&gt;&gt;&gt;&gt;&gt; 0x5... CHECKPOINT, going to cherry-pick onto master
</code></pre>

<p>Why is there this merge conflict?  I am trying to understand why it occurs.  Shouldn't <code>cherry-pick</code>ing be the same as trying to make all the edits made on the commit that is to be <code>cherry-pick</code>ed yourself and then commiting that change onto the branch (<code>master</code> in this case)?</p>

<p>Also when exactly is there a merge conflict in <code>git</code>?  I seem to get them at weird times.  Is this implementation dependent (for example dependent on the algorithm used to merge)? </p>

<p>Thank you!</p>