[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 <junkio@cox.net> --- * Back to fixing usability issues one at a time instead of throwing everything away with bathwater.
git-checkout.sh | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
Show changes to git-checkout.sh +5 −1
diff --git a/git-checkout.sh b/git-checkout.sh index eb28b29..737abd0 100755 --- a/git-checkout.sh +++ b/git-checkout.sh @@ -112,7 +112,11 @@ Did you intend to checkout '$@' which ca 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
-- 1.4.4