dotfiles/.local/bin/scripts/git-moves

11 lines
373 B
Bash
Executable File

#!/bin/sh -e
# Stage moved files fitting the already staged ones
set -o pipefail
git diff --name-only --cached >/tmp/staged
root=$(git rev-parse --show-toplevel)
git add "$root"
git status --porcelain --find-renames=.2 |
grep -vf /tmp/staged | cut -c4- | sed 's/ -> /\n/' |
xargs git -C "$root" restore --staged
test "$1" = "-q" || git status --short --find-renames=.2