I'm struggling to learn general relativity rigorously. In the process, I've learned some topology (Crossley - Essential Topology, Lee - Introduction to Topological Manifolds) and smooth manifold theory (Tu - An Introduction to Manifolds).

I now know about manifolds, differential forms, Stoke's theorem, de Rham cohomology and more. But I still haven't got a clue about differential geometry, which GR is really all about.

Where should I go now?

How do I learn the geometry stuff in a good way?

I've heard good things about O'Neill - Semi-Riemannian Geometry, but I'm a little anxious I don't have the geometrical prerequisities. Also, I've been considering Spivak and/or Boothby.

What would you guys suggest?