8 lines
397 B
Bash
Executable File
8 lines
397 B
Bash
Executable File
#!/bin/sh -e
|
|
# Revives a file that has been deleted from the last known commit.
|
|
# Filename can be given with any amount of complete prefix directories.
|
|
file="$1"
|
|
commit=$(git log --format="%H" -1 -- "*/$file")
|
|
test -z "$commit" && echo "$file not found in history" >&2 && exit 2
|
|
git restore --worktree --source="$commit~" -- $(git diff-tree --no-commit-id --name-only -r $commit | grep "/$file$")
|