enmetu commits and syncs such a folder. It commits through its own index, so it leaves what you staged alone. On a conflict it holds your commits back instead of committing conflict markers, it never force-pushes, and it pauses while you use git yourself. "enmetu status" prints the commands to end a conflict.
Commit messages can come from a script of yours, for example Apple's on-device model.
And because I have been moving away from big tech, I'm giving CodeFloe a try :)