Can someone explain how to use the deploy feature in Pro?

so as mentioned can someone explain in more layman’s terms how pro deploy feature works in the sense of what versions do I need to update where when I want to push a change and then if I push another change do I always have to use and set the versioning for the builds on the website?

From the video on the page about deploy it makes it out that you don’t need to update your apps version when you want to push to change but I was having problems with it not updating to newer pushed code to a channel and such but then switched to updating version number and pushing to a channel and using the native versioning functioning and setting it for the that commits build then manually deploying that build to the channel that deploy looks at to update but that just made things even more confusing…

Because you have your version in package.json, one in config.xml, there’s an appVersion property you pass into pro.init, then you have your binary version at the time the app was built, then you have all the native versioning stuff on the site where you can set min/max/equiv native versions for a build when you deploy on whether it should update.

But nothing really explains how to use all that together… for example if you start using the native versioning feature on the site to tell deploy if it should download or not download this update then I assume you have to set that every time you want to push a new update?