[PATCH] git-reset: allow --soft in a bare repo
- From
Jeff King <peff@peff.net>
- Date
- Jul 14, 2007, 04:49 UTC
- Message-ID
- <20070714044916.GA24911@coredump.intra.peff.net>
Previously, git-reset always required a work directory. For --mixed and --hard resets, this makes sense, as the bare repo doesn't have an index or a working tree. However, for --soft, there's no reason to prohibit this behavior.
Signed-off-by: Jeff King <peff@peff.net>
---
Somebody asked about this on irc ("how do I rewind history in a bare
repo"). The only other ways right now are to update the ref manually
(which involves plumbing), or to "git-push -f" from a non-bare
repository. I can't think of any good reason why a soft reset shouldn't
be allowed.git-reset.sh | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/git-reset.sh b/git-reset.sh index 1dc606f..5450289 100755 --- a/git-reset.sh +++ b/git-reset.sh @@ -6,7 +6,6 @@ USAGE='[--mixed | --soft | --hard] [<commit-ish>] [ [--] <paths>...]' SUBDIRECTORY_OK=Yes . git-sh-setup set_reflog_action "reset $*" -require_work_tree update= reset_type=--mixed unset rev @@ -32,6 +31,13 @@ do shift done +case "$reset_type" in + --soft) + ;; + *) + require_work_tree +esac + : ${rev=HEAD} rev=$(git rev-parse --verify $rev^0) || exit
-- 1.5.3.rc1.807.g51fb9-dirty