Title: | A Lightweight API for 'Git' |
Version: | 0.1.0 |
Description: | A light-weight, dependency-free, application programming interface (API) to access system-level 'Git' https://git-scm.com/downloads commands from within 'R'. Contains wrappers and defaults for common data science workflows as well as 'Zsh' https://github.com/ohmyzsh/ohmyzsh plugin aliases. A generalized API syntax is also available. |
License: | MIT + file LICENSE |
URL: | https://stufield.github.io/gitr/ |
BugReports: | https://github.com/stufield/gitr/issues |
Depends: | R (≥ 4.1.0) |
Suggests: | knitr, rmarkdown, spelling, testthat (≥ 3.0.0), withr |
VignetteBuilder: | knitr |
Encoding: | UTF-8 |
LazyLoad: | true |
Copyright: | Stu Field 2025 |
Config/testthat/edition: | 3 |
Config/Needs/website: | tidyverse/tidytemplate |
RoxygenNote: | 7.3.1 |
Language: | en-US |
Collate: | 'gitr-params.R' 'gitr-package.R' 'gitr.R' 'gitr-branch.R' 'gitr-checkout.R' 'gitr-commit.R' 'gitr-lint-commit.R' 'gitr-pr.R' 'gitr-sitrep.R' 'gitr-tag.R' 'gitr-trim-sha.R' 'gitr-utils.R' 'zsh.R' |
NeedsCompilation: | no |
Packaged: | 2025-04-20 18:00:08 UTC; jack |
Author: | Stu Field |
Maintainer: | Stu Field <stu.g.field@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2025-04-21 07:00:02 UTC |
gitr: A Lightweight API for 'Git'
Description
A light-weight, dependency-free, application programming interface (API) to access system-level 'Git' https://git-scm.com/downloads commands from within 'R'. Contains wrappers and defaults for common data science workflows as well as 'Zsh' https://github.com/ohmyzsh/ohmyzsh plugin aliases. A generalized API syntax is also available.
Author(s)
Maintainer: Stu Field stu.g.field@gmail.com (ORCID) [copyright holder]
See Also
Useful links:
Git Branch Utilities
Description
Git Branch Utilities
Usage
gitr_default_br()
gitr_current_br()
gitr_local_br()
Value
character(1)
. The name of the respective
branch if found, otherwise NULL
.
Functions
-
gitr_default_br()
: gets the default "main" branch, typically eithermaster
,main
, ortrunk
. -
gitr_current_br()
: gets the current branch. -
gitr_local_br()
: gets all the local branches.
Git Checkout
Description
Checks out as a branch if doesn't exist. Branch
oriented workflow for switching between branches.
If file
is passed, checks out the file. A common
shortcut to undoing local changes to a file(s).
Can be a vector of multiple files.
Usage
gitr_checkout(branch = NULL, file = NULL)
Arguments
branch |
|
file |
|
Value
NULL
... invisibly.
Examples
## Not run:
gitr_checkout("feature-br")
gitr_checkout(file = "DESCRIPTION")
## End(Not run)
Git Commit Utilities
Description
Git Commit Utilities
Usage
gitr_commit_msgs(sha = NULL, n = 1L)
scrape_commits(n)
gitr_unstage(file = NULL)
gitr_reset_soft(n = 1L)
gitr_uncommit()
gitr_reset_hard()
gitr_diff_commits(top = 1L, n = 2L)
Arguments
sha |
|
n |
|
file |
|
top |
|
Value
NULL
... invisibly.
A list containing commit message entries.
The sha
and author
of each commit is added as attributes.
Functions
-
gitr_commit_msgs()
: gets the commit messages corresponding to the commitsha
.sha
can becharacter(n)
, but must be valid SHAs corresponding to commits in the repository. -
scrape_commits()
: scrapesn
commit messages for useful change log commits to be used to create aNEWS.md
. -
gitr_unstage()
: un-stages a file from the index to the working directory. Default un-stages all files. -
gitr_reset_soft()
: un-commits the most recently committed file(s) and add them to the staging area. -
gitr_uncommit()
: un-commits the most recently committed file(s) and add them to the staging area. Wrapper aroundgitr_reset_soft()
-
gitr_reset_hard()
:git reset --hard origin/<branch>
. -
gitr_diff_commits()
: gets the diff of the corresponding 2 commits. Order matters!
Examples
## Not run:
gitr_commit_msgs()
gitr_commit_msgs(n = 3)
## End(Not run)
Git Utilities
Description
Provides functionality for system-level Git commands from within R.
Usage
git(..., echo_cmd = TRUE)
is_git()
git_version()
Arguments
... |
Additional arguments passed to the system
command-line |
echo_cmd |
|
Value
git()
: The system call ... invisibly.
is_git()
: logical(1)
.
git_version()
: character(1)
.
The system version of git
.
Functions
-
git()
: executes agit
command line call from within R. -
is_git()
: is current working directory agit
repository? -
git_version()
: gets the version of git in use.
Examples
## Not run:
git("status", "-s")
git("reset", "--soft", "HEAD~1")
git("tag", "-n")
is_git()
git_version()
## End(Not run)
Common Lints for Commit Messages
Description
Lint a commit message for typical commit style and best practices for git.
Usage
lint_commit_msg(x)
Arguments
x |
A single commit message from |
Value
integer(1)
. Invisibly returns the
number of detected lints in the message.
Examples
## Not run:
lapply(gitr_commit_msgs(7L), lint_commit_msg)
## End(Not run)
Common Parameters for gitr
Description
Common Parameters for gitr
Arguments
n |
|
file |
|
branch |
|
sha |
|
Git PR Utilities
Description
Git PR Utilities
Usage
gitr_pr_msgs(branch = NULL)
gitr_pr_sha(branch = NULL)
Arguments
branch |
|
Value
gitr_pr_msgs()
: see gitr_commit_msgs()
.
gitr_pr_sha()
: character vector of SHAs
corresponding to the PR (relative to the default branch).
Functions
-
gitr_pr_msgs()
: gets the commit messages for the current branch relative to theorigin/{main,master}
branch in the remote. Typically these "new" commits that would be merged as part of a PR toorigin/{main,master}
. -
gitr_pr_sha()
: gets the commit SHA-1 a branch (by default current) relative to thedefault
branch in the remote, usually eitherorigin/main
ororigin/master
. Seegitr_default_br()
. If there are un-pushed commit on the current default branch, it returns them.
Examples
## Not run:
# SHAs from feature branch differ from default br
gitr_pr_sha()
# commit messages from the SHAs above
# for a PR `branch` -> `remotes/origin/{main,master}`
gitr_pr_msgs()
# for a feature branch -> default branch
gitr_pr_msgs("feature")
## End(Not run)
SHA1 Utilities
Description
SHA1 Utilities
Usage
gitr_trim_sha(sha)
is_sha(sha)
gitr_current_sha()
Arguments
sha |
|
Value
gitr_trim_sha()
: character(1)
. The trimmed sha
.
If sha
is not a SHA1
hash, the identical string unchanged.
is_sha()
: logical(1)
. If sha
matches the
SHA1
expected pattern.
gitr_current_sha()
: character(1)
. The sha
of the current commit.
Functions
-
gitr_trim_sha()
: trims theSHA-1
hash from the default full length to the human-readable short version. -
is_sha()
: determines whether strings to be tested are aSHA1
hash via regular expression ("^[a-f0-9]{5,40}$"
) match. -
gitr_current_sha()
: gets the current (most recent commit) SHA.
See Also
Git Situation Report
Description
Get a situation report of the current git repository.
Usage
gitr_sitrep()
Value
NULL
... invisibly.
Git Tag Utilities
Description
Git Tag Utilities
Usage
gitr_recent_tag()
gitr_tag_info()
Value
gitr_recent_tag()
: character(1)
. The most recent tag.
gitr_tag_info()
: A data frame summarizing the repository tags.
Functions
-
gitr_recent_tag()
: gets the most recentgit
tag. -
gitr_tag_info()
: gets a data frame summary of the current git repository tags.
Examples
## Not run:
gitr_recent_tag()
gitr_tag_info()
## End(Not run)
Z-shell Aliases
Description
Provides functions to common Z-shell git plugin aliases.
Usage
glog(n = 10L)
gcc(...)
gcmsg(msg = "wip")
gco(branch = NULL)
gcb(branch = NULL)
gpr()
gp(...)
gpu()
gpd()
gst()
gss()
gba()
gbd(branch = NULL, force = FALSE)
gbmm(branch = gitr_default_br())
gbnm(branch = gitr_default_br())
gbm(branch = NULL)
ga(...)
gaa()
gau()
gsta()
gstl()
gstaa(n = 0)
gstd(n = 0)
gstc()
gsts(text = FALSE)
gpop()
gstp()
gtn()
gfa()
gac()
gwip()
gclean(dry_run = TRUE)
gdf(file = NULL, staged = FALSE)
gpf()
gnuke()
gcf(global = FALSE)
gcm()
grm(...)
grbc()
grba()
grbs()
grbm()
grv()
Arguments
n |
|
... |
Additional arguments passed to the system
command-line |
msg |
|
branch |
|
force |
|
text |
|
dry_run |
|
file |
A full file path within the repository to diff. |
staged |
|
global |
|
Value
Most aliases invisibly return NULL
... with some exceptions.
Functions
-
glog()
: Get thegit
log in a pretty format for then
most recent commits. -
gcc()
:git commit ...
. To avoid masking thebase::gc()
function, this alias has been re-mapped togcc()
. -
gcmsg()
:git commit -m <msg>
. -
gco()
:git checkout
. -
gcb()
:git checkout -b <branch>
. -
gpr()
:git pull --rebase
. -
gp()
:git push
. -
gpu()
:git push -u origin
. -
gpd()
:git push --dry-run
. -
gst()
:git status
. -
gss()
:git status -s
. -
gba()
:git branch -a
. -
gbd()
:git branch -dD
. -
gbmm()
:git branch --merged <branch>
. -
gbnm()
:git branch --no-merged <branch>
. -
gbm()
:git branch -m
. -
ga()
:git add ...
. -
gaa()
:git add --all
. -
gau()
:git add -u
. -
gsta()
:git stash
. -
gstl()
:git stash list
. -
gstaa()
:git stash apply
. Note zero-indexing! -
gstd()
:git stash drop
. Note zero-indexing! -
gstc()
:git stash clear
. Danger! -
gsts()
:git stash show
. -
gpop()
:git stash pop --quiet --index
. -
gstp()
: Seegpop()
. -
gtn()
:git tag -n
. -
gfa()
:git fetch --all --prune
. -
gac()
:git commit --no-verify --amend --no-edit
. -
gwip()
:git commit --no-verify -m 'wip'
. -
gclean()
:git clean -f -d
. -
gdf()
:git diff <file>
. -
gpf()
:git push --force-with-lease
. -
gnuke()
:git reset --hard && git clean -df
. -
gcf()
:git config --local
orgit config --global
. -
gcm()
: Checkout the default branch. -
grm()
:git rm ...
. -
grbc()
:git rebase --continue
. -
grba()
:git rebase --abort
. -
grbs()
:git rebase --skip
. -
grbm()
:git rebase gitr_default_br()
. -
grv()
:git remote -v
.
Examples
## Not run:
glog()
## End(Not run)