As per above comments -
Setup github for public repos or bitbucket for private (I enjoy bitbucket because it is part of atlassian and you can set up jira too (issue tracking)).
It is important to commit your code so you don't ever lose the changes you've been working on.
edit: github supports private repos as well, although it is not free as bitbucket is.
I used godaddy for domain and it's pretty ok. There are other alternatives out there, just google it up a little bit. This is just for the DOMAIN (like google.com or torn.com). It is linked (or rather pointing) to the IP address of your web host.
As for hosting - there are many choices, depends what you need. I suggest shared virtual hosts because they are dirt cheap, but you are sacrificing speed. Obviously if you are expecting low traffic, you'll be fine.
Some hosts have bandwidth limit so be aware of that.
For virtual hosts I usually browse
https://lowendbox.com/. Every so and then a new advertisement for hosts pop up. Some are cheap, some expensive.
Make sure you don't get the first host available, because sometimes there are better deals for the same money. Shop around! :)