Shell variable expansion in git config

前端 未结 2 1709
忘了有多久
忘了有多久 2020-12-05 01:36

I have a shell variable which points to the directory where all my configuration files are located. Let\'s assume the variable is created with export RC=$HOME/rc

2条回答
  •  伪装坚强ぢ
    2020-12-05 02:15

    You can't. git-config(1) does not support environment variable expansion, but only limited type conversion and path expansion:

    The type specifier can be either --int or --bool, to make git config ensure that the variable(s) are of the given type and convert the value to the canonical form (simple decimal number for int, a "true" or "false" string for bool), or --path, which does some path expansion (see --path below). If no type specifier is passed, no checks or transformations are performed on the value.

    The documentation for --path states:

    --path

    git-config will expand leading ~ to the value of $HOME, and ~user to the home directory for the specified user. This option has no effect when setting the value (but you can use git config bla ~/ from the command line to let your shell do the expansion).

    The term "expansion" does not appear in any different context in git-config(1). So how did you even get the idea that it should, given that no such feature is documented anywhere?

    In order to expand environment variables you have to pre-process the Git config file yourself, i.e. by creating a template file, and expand variables with a script before copying the file to your $HOME directory.

    If it's about dotfile management, then do, what all people do: Put them in a directory, and add symlinks to this directory from your $HOME.

提交回复
热议问题