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() |
git_config(repo = ".")git_config_global()
git_config_set(name, value, repo = ".")
git_config_global_set(name, 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.
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 of the option to set
Value to set. Must be a string, logical, number or NULL
(to
unset).
Other git:
git_archive
,
git_branch()
,
git_commit()
,
git_diff()
,
git_fetch()
,
git_ignore
,
git_merge()
,
git_rebase()
,
git_remote
,
git_repo
,
git_signature()
,
git_stash
,
git_tag
# 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)
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()
}
Run the code above in your browser using DataLab