How to improve handling of git dependencies in small game studio?

My company has many inhouse tools hosted as Unity package manager packages on GitHub. This makes it relatively easy to setup new projects with shared code, but it also means that each developer machine needs to have git installed. At first this might not seem like a big deal, but especially after a year of working remotely, mostly from home and team members jumping between multiple work stations, we noticed that it’s a recurring issue. Especially non-tech people are baffled by the Unity popup that something is not working because of ominous Git something. Artists and external contractors simply want this to work and not deal with installing additional software (they already have to deal with installing the right Unity project version, which was greatly improved via the Hub, but also learn how to use PlasticSCM for example).

How can I make this easier for my team members? As far as I know, the official Unity packages to not require a custom git installation. How is this achieved? Is Unity hosting their packages with a different system or do they use a bundled git version? Wouldn’t it be possible for Unity to simply bundle a git version for use with the package manager? It shouldn’t be too large, could be made optional, or auto-detect that it’s required.

I’m not really set on using Git anyway, since we don’t use it for version control and I’m not a big fan myself, I wouldn’t mind switching to something else or potentially hosting the packages on our own server.

Or do people auto-install Git to their workstations via editor scripting? Would something like that be possible while the project is opening?

Hey there, sincere apologies for the delay in reply.

Having the path to Git configurable has been brought by other users here in the forum: Feature Request: Git Path Config

From speaking to the team, this is something in their backlog to resolve, but there’s currently no ETA on this. With this in mind, you would still need to install Git and probably Git-Lfs on all the team members machines.

The solution for now would be to publish your packages to an internal registry, and your projects will have the scoped registry configuration: Unity - Manual: Scoped registries.

It has the initial to setup the registry, set a process to publish the packages new versions, but team members will only need to setup the scoped registry and then select the package and version they want to use, without needed any external program as Git.