R: Get or set Git configuration

git_config {gert} | R Documentation

## Get or set Git configuration

### Description

Get or set Git options, as `git config` does on the command line. Global settings affect all of a user's Git operations (`git config --global`), whereas local settings are scoped to a specific repository (`git config --local`). When both exist, local options always win. Four functions address the four possible combinations of getting vs setting and global vs. local.

| local | global
get | `git_config()` | `git_config_global()`
set | `git_config_set()` | `git_config_global_set()`

### Usage

    git_config(repo = ".")

    git_config_global()

    git_config_set(name, value, repo = ".")

    git_config_global_set(name, value)

### Arguments

`repo` | The path to the git repository. If the directory is not a repository, parent directories are considered (see git_find). To disable this search, provide the filepath protected with `I()`. When using this parameter, always explicitly call by name (i.e. `repo =` ) because future versions of gert may have additional parameters.
`name` | Name of the option to set
`value` | Value to set. Must be a string, logical, number or `NULL` (to unset).

### Value

- `git_config()`: a `data.frame` of the Git options "in force" in the context of `repo`, one row per option. The `level` column reveals whether the option is determined from global or local config.

- `git_config_global()`: a `data.frame`, as for `git_config()`, except only for global Git options.

- `git_config_set()`, `git_config_global_set()`: The previous value of `name` in local or global config, respectively. If this option was previously unset, returns `NULL`. Returns invisibly.

### See Also

Other git: `git_archive`, `git_branch()`, `git_commit()`, `git_diff()`, `git_fetch()`, `git_merge()`, `git_rebase()`, `git_remote`, `git_repo`, `git_signature()`, `git_stash`, `git_tag`

### Examples

    # Set and inspect a local, custom Git option
    r <- file.path(tempdir(), "gert-demo")
    git_init(r)

    previous <- git_config_set("aaa.bbb", "ccc", repo = r)
    previous
    cfg <- git_config(repo = r)
    subset(cfg, level == "local")
    cfg$value[cfg$name == "aaa.bbb"]

    previous <- git_config_set("aaa.bbb", NULL, repo = r)
    previous
    cfg <- git_config(repo = r)
    subset(cfg, level == "local")
    cfg$value[cfg$name == "aaa.bbb"]

    unlink(r, recursive = TRUE)

    ## Not run:
    # Set global Git options
    git_config_global_set("user.name", "Your Name")
    git_config_global_set("user.email", "your@email.com")
    git_config_global()

    ## End(Not run)

[Package gert version 1.0.2 Index]