It sounds like you want a private registry. With a private registry, you can publish new versions of your package and they will be listed in the Package Manager window for any Unity project that points to that registry. You can even have a project that points to Unity’s registry as well as your own. This feature is called “scoped registries” and is described here:
If setting up your own registry server is not feasible, there are other ways of sharing your package privately such as through a Github repository. Let me know if you want more details!
Sure, in the Package Manager window you can click the + button and Add package from package ID.... The package ID should be in the format @ where the URL ends with “.git”. For more information on formatting the URL (such as specifying a branch or specific commit) see here:
If you open your project manifest (/Packages/manifest.json) you will see the git package has been added to “dependencies” and a “lock” attribute is set. This means your Unity project is locked to that specific revision of the repo e.g.
You will have to delete the lock (or add the package again) every time you want to fetch the latest revision. This is by design because, for example, 2 people on the same project should always get the same packages. There might be plans in the future to make this easier through the Package Manager window e.g. an “Update to latest” button.