Behavior is very different from C Git here.

If a flle affected by the source was tracked but not in the index C Git fals. 

Mv'ing a directory without tracked files fails in C Git.

You can mv a directory without some untracked files and the whole directory will be renamed.

The -f and -k options are quite important to handle here.