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.

localglobal
getgit_config()git_config_global()
setgit_config_set()git_config_global_set()
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

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
#> NULL
cfg <- git_config(repo = r) subset(cfg, level == "local")
#> # A tibble: 5 x 3 #> name value level #> <chr> <chr> <chr> #> 1 core.repositoryformatversion 0 local #> 2 core.bare false local #> 3 core.logallrefupdates true local #> 4 aaa.bbb ccc local #> 5 core.filemode true local
cfg$value[cfg$name == "aaa.bbb"]
#> [1] "ccc"
previous <- git_config_set("aaa.bbb", NULL, repo = r) previous
#> [1] "ccc"
cfg <- git_config(repo = r) subset(cfg, level == "local")
#> # A tibble: 4 x 3 #> name value level #> <chr> <chr> <chr> #> 1 core.repositoryformatversion 0 local #> 2 core.bare false local #> 3 core.logallrefupdates true local #> 4 core.filemode true local
cfg$value[cfg$name == "aaa.bbb"]
#> character(0)
unlink(r, recursive = TRUE) if (FALSE) { # Set global Git options git_config_global_set("user.name", "Your Name") git_config_global_set("user.email", "your@email.com") git_config_global() }