# Git Configuration ## Aliases A set of [Git][git] aliases which follow the idea "say what you mean" rather than remember the plumbing term of a specific command. * `abandon` abandons all local changes leave a clean repository. * `amend` amends the last commit, shorthand for `git commit --amend`. * `unstage` unstage staged changes, shorthand for `git reset -q HEAD --`. * `squash` perform an interactive rebase to squash all commits since branching, shorthand for `git rebase -i --fork-point`. * `list` list local branches, a shorthand for `git branch`. * `create` creates a new branch, shorthand for `git checkout -b`. * `delete` deletes an existing branch, shorthand for `git branch -D`. * `name` the name of the current branch. * `last` the name of the last branch checked out before the current branch. * `publish` push and set the tracking branch of a local branch to origin, shorthand for `git push -u origin `. * `unpublish` delete a remote branch, shorthand for `git push origin :`. * `force` force push local changes to the remote, shorthand for `git push --force-with-lease`. * `changes` compare the list of commits on the local branch to another branch, e.g. when on a feature branch `git changes master` lists the commits which are not present on the master branch. * `save` like pushing to the stash but attached to a branch, shorthand for `git commit -am temp`. * `load` like popping from the stash but attached to a branch, shorthand for `git reset --mixed HEAD`. [git]: https://git-scm.com