A shell function could help on this:
[alias]
files = "!f() { git diff --name-status \"$1^\" \"$1\"; }; f"
An alias without !
is treated as a Git command; e.g. commit-all = commit -a
.
With the !
, it’s run as its own command in the shell, letting you use stronger magic like this.
UPD
Because commands are executed at the root of repository you may use ${GIT_PREFIX}
variable when referring to the file names in commands