From bf7e1472df65c948581e2fecd494eccfaa40b9d9 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 15 Nov 2006 10:54:10 -0800 Subject: [PATCH] git-checkout: allow pathspec to recover lost working tree directory It is often wanted on the #git channel that this were to work to recover removed directory: rm -fr Documentation git checkout -- Documentation git checkout HEAD -- Documentation ;# alternatively Now it does. Signed-off-by: Junio C Hamano --- git-checkout.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/git-checkout.sh b/git-checkout.sh index eb28b291b..737abd0c0 100755 --- a/git-checkout.sh +++ b/git-checkout.sh @@ -112,7 +112,11 @@ Did you intend to checkout '$@' which can not be resolved as commit?" git-ls-tree --full-name -r "$new" "$@" | git-update-index --index-info || exit $? fi - git-checkout-index -f -u -- "$@" + + # Make sure the request is about existing paths. + git-ls-files --error-unmatch -- "$@" >/dev/null || exit + git-ls-files -- "$@" | + git-checkout-index -f -u --stdin exit $? else # Make sure we did not fall back on $arg^{tree} codepath -- 2.30.2