title: git merge updates files not changed on source branch
body: <p>I'm struggling to understand how the following behavior is a good thing in git. See below for an example I put together to help illustrate my problem. Many times my team and myself are getting changes/commits going into branches that we did not want to go there.</p>
  
  <pre><code>&gt; git init sandbox &amp;&amp; cd sandbox
  &gt; echo "data a" &gt; a.txt &amp;&amp; echo "data b" &gt; b.txt
  &gt; git add -A &amp;&amp; git commit -a -m "initial population"
  [master (root-commit) d7eb6af] initial population
   2 files changed, 2 insertions(+)
   create mode 100644 a.txt
   create mode 100644 b.txt
  &gt; git branch branch1
  &gt; echo "more data a" &gt;&gt; a.txt &amp;&amp; git commit -a -m "changed a.txt on master"
  [master 11eb82a] changed a.txt on master
   1 file changed, 1 insertion(+)
  &gt; git branch branch2 &amp;&amp; git checkout branch2
  Switched to branch 'branch2'
  &gt; echo "more data b" &gt;&gt; b.txt &amp;&amp; git commit -a -m "changed b.txt on branch2"
  [branch2 25b38db] changed b.txt on branch2
   1 file changed, 1 insertion(+)
  &gt; git checkout branch1
  Switched to branch 'branch1'
  &gt; git merge branch2
  Updating d7eb6af..25b38db
  Fast-forward
   a.txt | 1 +
   b.txt | 1 +
   2 files changed, 2 insertions(+)
  </code></pre>
  
  <p>Notice in the above, a.txt is updated in the merge, even though it was not touched/modified on branch2. In the above scenario I would expect git to be intelligent to recognize that a.txt was not changed on branch2 and therefore when applying updates to branch1, not make those changes.</p>
  
  <p>Is there something I'm doing wrong? Yes, I could cherry pick and that would would for this simplistic example where I know what I changed, but is not realistic under real circumstances where the changes are much larger and you don't know what might have been affected.</p>
  
  <p>To be clear, I do not want this behavior from git.</p>