From ffda73bac3a435a9bbc6f29f2fd98517fbe5d9db Mon Sep 17 00:00:00 2001 From: Chris Apple <14171107+cjappl@users.noreply.github.com> Date: Mon, 19 Dec 2022 10:57:58 -0800 Subject: [PATCH] Adding the ability to grh from a subdirectory (#262) grh didn't work if you were in a subdirectory. See #254 for more details --- bin/git-forgit | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bin/git-forgit b/bin/git-forgit index 760747f..bd905d5 100755 --- a/bin/git-forgit +++ b/bin/git-forgit @@ -177,16 +177,17 @@ _forgit_add() { # git reset HEAD (unstage) selector _forgit_reset_head() { _forgit_inside_work_tree || return 1 - local cmd files opts - cmd="git diff --cached --color=always -- {} | $_forgit_diff_pager " + local cmd files opts rootdir + rootdir=$(git rev-parse --show-toplevel) + cmd="git diff --staged --color=always -- $rootdir/{} | $_forgit_diff_pager " opts=" $FORGIT_FZF_DEFAULT_OPTS -m -0 --preview=\"$cmd\" $FORGIT_RESET_HEAD_FZF_OPTS " - files="$(git diff --cached --name-only --relative | FZF_DEFAULT_OPTS="$opts" fzf)" - [[ -n "$files" ]] && echo "$files" | tr '\n' '\0' | xargs -0 -I% git reset -q HEAD % && git status --short && return + files="$(git diff --staged --name-only | FZF_DEFAULT_OPTS="$opts" fzf)" + [[ -n "$files" ]] && echo "$files" | tr '\n' '\0' | xargs -0 -I% git reset -q HEAD "$rootdir"/% && git status --short && return echo 'Nothing to unstage.' }