OK, slightly off-topic but maybe the right minds are here. We have been developing an introductory CS curriculum committed to thinking-with-powerful-tools, including the command line, real programming languages, and git. It's great until it isn't. We intentionally maintain a simplified workflow, but still get the occasional merge conflict or local state blocking a pull. I keep thinking there must be a simplified wrapper over git which maintains the conceptual power while avoiding the sharp edges, even if at the cost of robustness. I'd be more interested in an abstraction than a GUI, but would be interested to hear whatever others have come up with.
The git user interface just sucks. hg supposedly has a better UI, and darcs is apparently better again (except sometimes merges could run in exponential time). Pijul is meant to give you darcs-like ui with good performance. But none of those things are fit which is maybe important to teach.
One possibility could be to use some kind of git ui. I only know about magit (which is built on/in Emacs) but I’m sure others exist.