kubectl apply <file.yaml> --save-config creates or updates a deployment and saves the deployment as metadata.
In the documentation it says
--save-config[=false]: If true, the configuration of current object will be saved in its annotation. This is useful when you want to perform kubectl apply on this object in the future.
Why do I need save-config? I can still update my deployment using kubectl apply if I do not --save-config.