R: Stage and commit changes

git_commit {gert} | R Documentation

## 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

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

### 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)

[Package gert version 1.3.2 Index]