From e52fb178f62e68cf85d2f1fb42ba17efae686a34 Mon Sep 17 00:00:00 2001 From: Ido Abramovich Date: Tue, 31 Jul 2018 17:20:59 +0300 Subject: [PATCH] add forgit restore Former-commit-id: 24a38b00f3500ac9ffcc80eb3f53b0648af86409 --- forgit.plugin.bash | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/forgit.plugin.bash b/forgit.plugin.bash index df7dd1c..41ed91f 100755 --- a/forgit.plugin.bash +++ b/forgit.plugin.bash @@ -109,6 +109,18 @@ __forgit_add() { fi } + +__forgit_restore() { + if [[ __forgit_inside_work_tree -ne 0 ]]; then + return 1 + fi + local cmd="git diff --no-ext-diff --color=always -- {} $forgit_emojify $forgit_fancy" + local files=$(git ls-files --modified $(git rev-parse --show-toplevel)| + __forgit_fzf -m -0 --preview="$cmd") + [[ -n "$files" ]] && echo "$files" |xargs -I{} git checkout {} && git status --short && return + echo 'Nothing to restore.' +} + # git ignore generator export FORGIT_GI_CACHE=~/.gicache export FORGIT_GI_INDEX=${FORGIT_GI_CACHE}/.index @@ -156,3 +168,4 @@ alias ${forgit_add:-ga}=__forgit_add alias ${forgit_log:-glo}=__forgit_log alias ${forgit_diff:-gd}=__forgit_diff alias ${forgit_ignore:-gi}=__forgit_ignore +alias ${forgit_restore:-gcf}=__forgit_restore