Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

git_commit

Stage and commit changes


Description

To commit changes, start by staging the files to be included in the commit using git_add() or git_rm(). Use git_status() to see an overview of staged and unstaged changes, and finally git_commit() creates a new commit with currently staged files.

git_commit_all() is a convenience function that automatically stages and commits all modified files. Note that git_commit_all() does not add new, untracked files to the repository. You need to make an explicit call to git_add() to start tracking new files.

git_log() shows the most recent commits and git_ls() lists all the files that are being tracked in the repository.

Usage

git_commit(message, author = NULL, committer = NULL, repo = ".")

git_commit_all(message, author = NULL, committer = NULL, repo = ".")

git_commit_info(ref = "HEAD", repo = ".")

git_commit_id(ref = "HEAD", repo = ".")

git_commit_descendant_of(ancestor, ref = "HEAD", repo = ".")

git_add(files, force = FALSE, repo = ".")

git_rm(files, repo = ".")

git_status(staged = NULL, repo = ".")

git_conflicts(repo = ".")

git_ls(repo = ".")

git_log(ref = "HEAD", max = 100, repo = ".")

git_stat_files(files, ref = "HEAD", repo = ".")

Arguments

message

a commit message

author

A git_signature value, default is git_signature_default().

committer

A git_signature value, default is same as author

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.

ref

revision string with a branch/tag/commit value

ancestor

a reference to a potential ancestor commit

files

vector of paths relative to the git root directory. Use "." to stage all changed files.

force

add files even if in gitignore

staged

return only staged (TRUE) or unstaged files (FALSE). Use NULL or NA to show both (default).

max

lookup at most latest n parent commits

Value

  • git_status(), git_ls(): A data frame with one row per file

  • git_log(): A data frame with one row per commit

  • git_commit(), git_commit_all(): A SHA

See Also

Examples

oldwd <- getwd()
repo <- file.path(tempdir(), "myrepo")
git_init(repo)
setwd(repo)

# Set a user if no default
if(!user_is_configured()){
  git_config_set("user.name", "Jerry")
  git_config_set("user.email", "jerry@gmail.com")
}

writeLines(letters[1:6], "alphabet.txt")
git_status()

git_add("alphabet.txt")
git_status()

git_commit("Start alphabet file")
git_status()

git_ls()

git_log()

cat(letters[7:9], file = "alphabet.txt", sep = "\n", append = TRUE)
git_status()

git_commit_all("Add more letters")

# cleanup
setwd(oldwd)
unlink(repo, recursive = TRUE)

gert

Simple Git Client for R

v1.3.0
MIT + file LICENSE
Authors
Jeroen Ooms [aut, cre] (<https://orcid.org/0000-0002-4035-0289>), Jennifer Bryan [ctb] (<https://orcid.org/0000-0002-6983-2759>)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.