I found this treasure hidden in the Magento Github repo describing succinctly on how to work with Magento's configuration files, namely
app/etc/env.php. Reposting it here so that I can refer to it back more easily in the future.
app/etc/config.php is shared across all instances but
app/etc/env.php only exists individually on each instance. The first is part of your code repository the latter isn't.
Here is Juan Alonso's example of a workflow on a real project:
When creating the project we dump all settings with
app:config:dump scopes themes
That creates the needed settings for scopes and themes but skips system core config data
We also add shared settings needed for PRD and Build environments
bin/magento config:set --lock-config dev/js/merge_files 1 bin/magento config:set --lock-config dev/css/merge_css_files 1 bin/magento config:set --lock-config dev/static/sign 1
As project evolves, we add a new stores and themes, so we need to update our config.php settings.
bin/magento app:config:dump scopes themes
- At the same time, if we ever need to share system settings on all environments, we can use the command
bin/magento config:set --lock-configwithout needing to dump all hundreds of settings into the config.php