What to wear when it's cold? If I put on heavy clothes it will be very hot inside them after the warm-up. If I wear only a T-shirt I'll freeze.

What's the solution?

I ride around 20 km in a hilly city, with temperatures between 0 and 30 celsius.
I have a continuum of clothes that I add on as the weather gets colder.

During the summer, I ride like you do with shorts and a t-shirt.  As things cool of a little bit, down below 60F/15C, I'll put on a windbreaker over my t-shirt and some full-finger gloves on my hands.  The next step for me is to add an Under Armour Cold Gear shirt (many companies make equivalent tops) but to stick with naked legs, they're doing all the wok after all.

Once temperatures get down to the 45F/7C range, I'll add som snazzy leggings in a fabric similar to the Under Armour top mentioned above.  When things start to freeze, my final move is a fleece vest over the long sleeve top, but under my windbreaker.

If things get even colder where you are, Icebike's clothing page is a good place to look for further advice.  Keep two things in mind: you need a lot less clothing once you're moving and generating heat than you do standing around, but you also need to be prepared for a problem that might leave you standing around for some time.  Dress light and carry extra clothes in a backpack.