.gitconfig insteadOf - Cargo Generate Documentation
Description: cargo, make me a project

# `.gitconfig` and `insteadOf` configuration

⚠️ New in version 0.22.0

git supports a magic trick to rewrite urls on the fly. This is done by adding a `url.<base>.insteadOf` configuration to your `.gitconfig` file.

In cargo-generate this is supported as well.

For example, if you prefer the ssh over the https urls and you want to use `cargo-generate` with it, you can add the following to your `.gitconfig`:

    # ~/.gitconfig

    [url "git@github.com:"]
    insteadOf = https://github.com/

and then you can use `cargo-generate` with the `https` url:

    RUST_LOG=debug cargo generate https://github.com/Rahix/avr-hal-template.git

    🔧   gitconfig 'insteadOf' lead to this url: git@github.com:Rahix/avr-hal-template.git

    ...

In this case please notice the ssh url is `git@github.com:` if you prefer the more explicit notation you can also write it like this:

    # ~/.gitconfig

    [url "ssh://git@github.com/"]
    insteadOf = https://github.com/

that would lead to the same result, with slightly different url:

    RUST_LOG=debug cargo generate https://github.com/Rahix/avr-hal-template.git

    🔧   gitconfig 'insteadOf' lead to this url: ssh://git@github.com/Rahix/avr-hal-template.git

    ...

> ⚠️ NOTE: `RUST_LOG=debug` would allow you to see the rewritten url in the output.

In cases where you have a different `.gitconfig` location, you can use the `--gitconfig` argument to specify the path to the `.gitconfig` file, like this:

    $ cd /path/to/my/workspace
    $ cat .gitconfig
    [url "git@github.com:"]
    insteadOf = https://github.com/

    $ cargo generate --gitconfig ./.gitconfig https://github.com/Rahix/avr-hal-template.git