diff --git a/README.md b/README.md index 82918a6..de862c7 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,18 @@ ## 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. +A set of [Git][git] [aliases][aliases] which follow the idea "say what you mean" +rather than remembering 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`. +* `amend` amends the last commit, shorthand for `git commit --amend`. +* `fixup` prepare a fixup commit for use with + `git rebase --interactive --autosquash`, shorthand for `git commit --fixup`. +* `squash` prepare a squash commit for use with + `git rebase --interactive --autosquash`, shorthand for `git commit --squash`. +* `prepare` prepare a branch for merging into another, shorthand for + `git rebase --interactive --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`. @@ -31,4 +35,15 @@ than remember the plumbing term of a specific command. `HEAD` has the subject `temp!` then `git reset --mixed HEAD~` is executed, otherwise the message `error: commit subject is not: temp!` is output. +## Zsh Completions + +The excellent [Git][git] completions provided by [Zsh][zsh] which can see +through [aliases][aliases] however some aliases involve multiple commands or +rely on the shell to function. The following aliases extend the default +[Git][git] completions. + +* `git changes` completions for the branch name to compare with are provided. + [git]: https://git-scm.com +[aliases]: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases +[zsh]: https://www.zsh.org diff --git a/_git-changes b/_git-changes index d703871..4795197 100644 --- a/_git-changes +++ b/_git-changes @@ -1,7 +1,6 @@ #compdef git-changes #description Compare changes on this branch with another. -_arguments \ - '1: :__git_remote_branch_names_noprefix' +_arguments '1: :__git_remote_branch_names_noprefix' # vim: ft=zsh diff --git a/config b/config index 4beddc6..586f859 100644 --- a/config +++ b/config @@ -2,9 +2,12 @@ [alias] abandon = !git reset --hard HEAD && git clean -d -f - amend = commit --amend unstage = reset -q HEAD -- - squash = rebase -i --fork-point + + amend = commit --amend + fixup = commit --fixup + squash = commit --squash + prepare = rebase -i --fork-point list = branch create = checkout -b @@ -49,6 +52,9 @@ [push] default = simple +[rebase] + autoSquash = true + [user] useConfigOnly = true