Tutorial on using git for change control

I’m trying to use git for change control and it frankly seems clunky. It seems the only way I can connect UE4 is to a local repo. This means I have to first commit my changes in UE4, then commit them again using GIT, and finally push them to my server (in my case a local gitlab server shared with other devs in house). Aside from the multiple steps, it also makes it hard to remember what commits are in a particular changeset, unless you commit both in UE4 and git at the same time. This seems very klunky, compared to say, TFS in Visual studio, where it’s literally one click of a button that commits/merges/saves your code. I feel like I must be doing something wrong here.

At a minimum I think it would be helpful if we could get an Epic developed tutorial on how to use git.