From 467789389a25cecd8f28bd54eacbb3a25625876d Mon Sep 17 00:00:00 2001 From: "Kenneth Benzie (Benie)" Date: Sat, 11 Aug 2018 19:16:42 +0100 Subject: [PATCH] Improve save/load aliases When `git load` is invoked it will check if the subject of the `HEAD` commit message is `temp!`, if it is when the commit will be reset, otherwise an error message is output and the commit remains untouched. --- README.md | 9 +++++---- config | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index da899e9..82918a6 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,10 @@ than remember the plumbing term of a specific command. * `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`. +* `save` like pushing to the stash but attached to the current branch, shorthand + for `git commit -am "temp!"`. +* `load` like popping from the stash but attached to the current branch, if + `HEAD` has the subject `temp!` then `git reset --mixed HEAD~` is executed, + otherwise the message `error: commit subject is not: temp!` is output. [git]: https://git-scm.com diff --git a/config b/config index b33ee51..4beddc6 100644 --- a/config +++ b/config @@ -21,8 +21,9 @@ tree = log --graph --abbrev-commit --oneline --decorate \ --format=format:'%C(yellow)%h%C(reset) %C(blue)%aD%C(reset) %C(green)(%ar)%C(reset)%C(bold)%d%C(reset)%n %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' - save = commit -am temp - load = reset --mixed HEAD~ + save = commit -am "temp!" + load = !sh -c '[ \"temp!\" = \"`git show --format=%s --no-patch`\" ] && \ + git reset --mixed HEAD~ || echo \"error: commit subject is not: temp!\"' [commit] verbose = true