You can export a theme, upload it to a repository, and install that.
All remote themes have a section at the top where you can decide if you want it to update automatically when Discourse is updated. Furthermore, there is a background job that checks if a more recent version is available, and you can check for new updates manually too. When a new version is available, the button offers to update the component.
You can also find that information in the guide about Installing a theme or theme component.
In case you haven’t already found it, there is also a tutorial about theme development