firebase deploy --only functions overrides existing functions
firebaser here
Running firebase deploy
will deploy all functions in the project. There is currently no option to deploy just new or modified functions.
It does sound like a useful addition though, so you might want to file a feature request.
Update: since version 3.8 of the Firebase tools CLI this is possible. See Pablo's answer or the release notes.
You can use firebase partial deploys
$ firebase deploy --only functions:makeUppercase
Will only deploy makeUppercase
function.
Hope it helps.
Note: To deploy more than one function at once (but not all) use:
$ firebase deploy --only functions:function1,functions:function2