Alias ​​de Git en el command nested

Sé cómo crear alias simples, pero existe este command muy útil para borrar los files borrados del disco que no puedo hacer que funcione.

git rm $(git ls-files --deleted)

(desde aquí Eliminar múltiples files de un repository de Git que ya han sido eliminados del disco )

Lo he intentado con:

 git config --global alias.cleandeleted 'rm $(git ls-files --deleted)' 

Pero cuando escribo:

 git cleandeleted 

Obtuve el siguiente error:

 error: unknown option `deleted)' usage: git rm [options] [--] <file>... -n, --dry-run dry run -q, --quiet do not list removed files --cached only remove from the index -f, --force override the up-to-date check -r allow recursive removal --ignore-unmatch exit with a zero status even if nothing matched 

El problema es $(...) . Como lo has definido, git solo maneja los commands de git intern y no sabe cómo lidiar con $(...) .

Hay un truco para hacer que orderes el trabajo:

 git config --global alias.cleandeleted '!git rm $(git ls-files --deleted)' 

Por el ! el alias funciona como si el command se hubiera dado directamente a la línea de command.