Wordpress stores urls like images etc, when you upload and change from a staging url to a live url yes you have to change them all.
There are various ways to not go through this nitemare and the best one is this:
With MAMP you can use virtual hosts locally.
Lets say i want to design a site for awesomebanana.com, when i upload i dont want all the urls to be
So with MAMP you use local dynamic virtual hosts, i setup the domain awesomebanana.com in MAMP and install a new wordpress, when i enter awesomebanana.com in my browser it will load the localhost version so i can develop away and as far as wordpress is concerned the host is indeed awesomebanana.com.
Then i can upload the files to the real live host and the whole database knowing that all internal urls never need fixing.
Thats the right way to do it, of course there are plugins and hacks to go through the database changing
to but they are a real pain and not always 100%.