so, base url gets modified to localhost automatically when you run the local server, so like, if your normal base url is
http://foo.com/bar/baz/ the local server will run with the baseurl as localhost:1313/bar/baz/ (but it'll still serve files from the public folder under your root site folder).
The way I do it is that I have a symlink in my hugo folder called production, which links to the real folder where I want the output to go. Then, when I want to output the real site for production use, I do hugo -d production (-d sets the output destination) which is nice and explicit, and only gets done once I'm satisfied with the way things look from the local server. Without using -d production, hugo outputs to the "public" folder, which I view as a disposable scratch pad just for the local server.
There is now support in the trunk code for your templates etc to check the value of BuildDrafts, which can be used as a way to turn on and off a sort of debugging mode... showing things that shouldn't normally be shown on the production site (that's the point of drafts, they don't normally get generated except while you're still working on things locally). Not sure if that would suit your purpose.