Merges and simplifies a lot of common cases. For example, creating a new blank repo in gitless is:
gl init
And getting a local copy of a remote repo in gitless is:
gl init
Whereas in git, it's:
git init
and:
git clone
Similarly, the operations to switch to (and create) a new branch, switch to an existing branch, and list branches, in git, is:
git checkout -b newbranch
git checkout oldbranch
git branch
In gitless, its:
gl branch newbranch
gl branch oldbranch
gl branch
Similarly, git has a somewhat complex situation where files can be staged, changed, tracked, and/or ignored; confusingly files can be odd mixtures of all four, and it can be quite hard to understand how to change the state of a file in some cases.
Gitless simplifies this a bit by removing the "stage", so files are either tracked, untracked, or ignored, with no ability to mix states. And instead of selectively staging changed files and then committing them in two separate steps (as you do in git), you stage and commit in one go.
Gitless is built on git; someone familiar with git can easily tranlate the gitless commands into the underlying git commands. It's not doing anything magic, but for day-to-day use the commands are probably a little more consistent and sensible.
Personally, my biggest pain point with git comes from managing complex branching situations; trying to figure when/how to merge, rebase, and cherry pick can be frustrating. Sadly, gitless doesn't (yet) help with this area.
(Short form: Gitless tries to make git's syntax simpler and more consistent.)