Given a topological space X we can define the sheaf cohomology of X in 

  I. the Grothendieck style (as the right derived functor of the global sections functor Gamma(X,-))

or

  II. the Cech style (first by defining the Cech cohomology groups subordinate to an open cover, and then taking the direct limit of these groups over all covers).

When exactly are these two definitions equivalent? I'm unhappy with the explanation given by Hartshorne. Are they the same for any paracompact Hausdorff space? Or a locally contractible space?

And what is the relationship between these two sheaf cohomologies and singular cohomology?

Any elaboration on this circle of ideas related to the relationship between all the different cohomology theories would be appreciated.