Search code examples
gitalias

Define git alias with the same name to shadow original command


I'm trying to use to use the same name for an alias as the existing command, so that the alias shadows the original command (preventing me from deleting files off the working tree).

[alias]
   rm = rm --cached
   diff = diff --color

Unfortunatly this is not working. Does anyone know a workaround? Thanks.

Edit Setting color.diff = true gives colored output as default.


Solution

  • For commands like rm --cached that don't have configurable options, your best bet is to just make an alias named differently. For example:

    [alias]
            rmc = rm --cached
    

    You may have already figured this out, but Git aliases cannot shadow existing Git commands. From the git-config man page:

    To avoid confusion and troubles with script usage, aliases that hide existing git commands are ignored.