So let me ask: what would your dream CLI look like? It's the part everyone uses every day, and no matter how good the technology it shapes people's opinions.
What would your interface look like? Which problems would you solve with direct commands? Which would be hidden away, with flags and switches required?
Bonus points if you can show your CLI to a manager/designer and have them understand it first-time.
For me, http://www.git-legit.org/ is heading in the right direction. I would have one standard workflow, so squash & merge, fetch vs pull, rebase branch or merge from trunk etc isn't an issue for new/casual users. Checkout would automatically stash new files and unstaged changes in the current branch. Users would have to copy those across if they wanted them (the less common scenario in my experience).
It would be easier to see which is the parent branch, and people would be warned before merging into a non-parent branch.
And conflict resolution would be smoother. I don't know how (I'm thinking something more visual) but I want it to be.
[0] http://news.ycombinator.com/item?id=5251359 [1] http://news.ycombinator.com/item?id=4882495 [2] http://rondevera.github.com/twig/ - it's useful. I forget branch names. Linking w issue status is very useful!