working with site offline

Hi,
Is there any way to work on a wordpress site offline nad upload the changes to a live site?