I like the idea here, but see one significant problem that will prevent me from using these aliases. The git publish alias doesn't take a branch name, so if you have multiple remotes for the repository it will just publish to one of them. Which one? Well, the code in legit/scm.py reads
return repo.git.execute([git, 'push', repo.remotes[0].name, branch])
so it just pushes to whichever remote is first in its array. What if I want to publish to a second remote?