I'm mounting the /ignition/data/projects folder in an external windows volume (D:\Ignition\Data\Projects) successfully, using the following run statement.
Usage of a bind-mount against the data folder places the empty folder from your host into place in the container. The files (such as gateway.xml_clean) that are in the image at that location are not found when the gateway starts up. Named volumes perform seeding of this information automatically, which is why you can create a named volume and map it into data and have things preserved as you'd expect.
I'd recommend that you use Docker Compose to manage your container here. The primary reason for this is that you'll be able to leverage an init container to perform the same type of "seeding" for your bind-mount that you'd get from a named volume. Take a look at the resources from my ICC session on Running Ignition in a Containerized Environment here: ICC 2022 Containerized Ignition - Session Notes · GitHub. You should be able to also register and access the Virtual ICC and replay that session--I explain this situation in more detail there.
So a bind-mount just maps a folder from the host system into the container. From the container's perspective, it looks like a mounted disk, like any other on the system. Permissions for that folder are going to be whatever are on the host (keep in mind that on Docker Desktop things are slightly different because you're crossing yet another boundary, container->host Linux VM->host filesystem). It shouldn't affect the usage of git.