Merging new contents with new functionalities Assuming a situation when you develop a new functionality on a local copy of an already published site for quite a while, during which period the client adds new content over and over again.

How do you then merge the new additions from both sources? Do you use Features or something else? What's the safest way to go?
Use below modules and git

Modules:

1) Backup and migrate(By this module you can take the backup of database from the production site).

2) Features(You can export content types, admin settings and global settings).

3) Drush(You can use this module for the production deployment).

Version control system

1) GIT

Below are the steps how to sync your code and database with the production site.

1) Take the database backup from the production site before you start working on the local machine and import that database into the local machine.

2) Take the updated code base from the git repository of production site.

3) Complete your work whatever you want and in the evening after completion of your work create features(If you have done some changes in content type, permission or any other settings) and pull code from the git repository if there is conflict then resolve it otherwise just commit your code on the git repository and move those changes from git repository to prod server.

4) Test whether it is working fine or not. If it is not working perfectly then revert your changes from git and commit your files and then move your files from git repository to prod server.