We've got a repository that has only a master branch (for the purpose of this discussion). Somehow we've got to a situation where a developer has merged his local master and pushed and managed to lose other commits.
The situation is that for a few commits, if we run git log from the root of the project it shows the commit. If we pick one of those files and run git log it doesn't show the commit in the log. The changes in that commit aren't reflected in a checkout of the head either.
Does anyone have any ideas how can this situation occur and how can we stop it happening again?