diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt index 9889806a5e..cd0dc1bd9d 100644 --- a/Documentation/git-stash.txt +++ b/Documentation/git-stash.txt @@ -9,7 +9,7 @@ SYNOPSIS -------- [verse] 'git-stash' (list | show [] | apply [] | clear) -'git-stash' [save] [message...] +'git-stash' [save []] DESCRIPTION ----------- @@ -36,11 +36,12 @@ is also possible). OPTIONS ------- -save:: +save []:: Save your local modifications to a new 'stash', and run `git-reset --hard` to revert them. This is the default action when no - subcommand is given. + subcommand is given. The part is optional and gives + the description along with the stashed state. list:: diff --git a/builtin-commit.c b/builtin-commit.c index d8deb1ad03..c787bed696 100644 --- a/builtin-commit.c +++ b/builtin-commit.c @@ -601,7 +601,7 @@ static int parse_and_validate_options(int argc, const char *argv[], if (get_sha1(use_message, sha1)) die("could not lookup commit %s", use_message); - commit = lookup_commit(sha1); + commit = lookup_commit_reference(sha1); if (!commit || parse_commit(commit)) die("could not parse commit %s", use_message); diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh index 21dcf550fc..361886c3d6 100755 --- a/t/t7501-commit.sh +++ b/t/t7501-commit.sh @@ -327,4 +327,22 @@ test_expect_success 'amend using the message from another commit' ' ' +test_expect_success 'amend using the message from a commit named with tag' ' + + git reset --hard && + test_tick && + git commit --allow-empty -m "old commit" && + old=$(git rev-parse --verify HEAD) && + git tag -a -m "tag on old" tagged-old HEAD && + test_tick && + git commit --allow-empty -m "new commit" && + new=$(git rev-parse --verify HEAD) && + test_tick && + git commit --allow-empty --amend -C tagged-old && + git show --pretty="format:%ad %s" "$old" >expected && + git show --pretty="format:%ad %s" HEAD >actual && + diff -u expected actual + +' + test_done