The process to get students fluid at the basic flow took a few days, but after a while it was great and I couldn't imagine doing it any other way. Any programming course using this is obvious, but I'd even do it for non-programming things if I could get the student trained on it in a minimal amount of time.
The only roadblocks with git are that there's so many basic ways to screw up, which are hard to fix. Let's say a student does a `git init` in their `~/code` folder that holds all of their git projects... and then makes a bunch of commits, and then can't figure out why they can't push to github. I wish there were some better failsafes to prevent such things, but they happened by accident once a week at least.