title: How can I tell what happened in a Git commit with two parents that did not merge in the changes from the second parent?
body: <p>In Gitk I can see a team member's commit (X) that has two parents, the first parent is his own previous commit (A), the other parent contains lots of other people commits (1 through 5). After his merge all changes made by other people (1 through 5 and others) are no longer present at X, B, C, etc...  </p>
  
  <pre><code>A------------
                \
                 X - B - C 
                /
  1--2--3--4--5
             /
  e--r--j--k
       /
  l--m
  </code></pre>
  
  <p>If I diff commit X to commit A it shows no differences, if I diff commit X to commit 5 it shows all the missing changes. Also, at commit X, B, or C git log does not show changes that were made to files in commits 1 through 5. However, if I do git log --full-history then history does show the changes that were made in 1 through 5, but those changes are not still present in the actual file and history does not show them being being undone. So git log --full-history seems to contradict the current file contents. </p>
  
  <p>I talked to the user who made commit X. He says he did not do a reset or rebase and he says he hasn't reverted any commits during the time in question. However, he says that he does sometimes do a pull origin master that results in everyone else's changes getting put in his index or working tree as if he had made those changes and not the actual authors of those changes. He says when that happens he does a fresh clone and does not push anything from that local repo to master because he believes Git has done something wrong.</p>
  
  <p>Are the two things related (bad pull and bad merge)?</p>
  
  <p>How can I tell exactly what happened so that we can avoid this in the future?</p>
  
  <p>And what causes Git to sometimes put changes pulled from origin master to be placed in the local working directory or index as if they were local changes?</p>