git
The git module manages your global Git config from Lua. It writes ~/.gitconfig, can manage a global gitignore, and gives common settings like signing and Git LFS first-class fields.
lua
local git = require("rootbeer.git")Configure Git
Most config maps directly to familiar Git settings. Use extra for tool-specific sections that Rootbeer doesn't model directly, such as delta.
lua
git.config({
user = {
name = "Aarnav Tale",
email = "aarnav@tale.me",
},
editor = "nvim",
pager = "delta",
signing = { key = "ssh-ed25519 AAAA..." },
lfs = true,
pull_rebase = true,
ignores = { ".DS_Store", "._*", "*~" },
extra = {
delta = { features = "color-only" },
},
})For different emails, signing keys, or ignores per machine, use Profiles.
API Reference
git.config(cfg)
Applies git.Config to the system. Writes a gitconfig file at cfg.path and optionally a gitignore file next to it.
Parameters — cfg: git.Config
editorstringoptionalDefault editor for commits (e.g.
"nvim").extratable<string, table<string, boolean|string>>optionalAdditional gitconfig sections (e.g.
delta, interactive).ignoresstring[]optionalGlobal gitignore patterns. Written next to the gitconfig.
ignores_pathstringoptionalOverride path for the gitignore file. Defaults to
.gitignore next to the gitconfig.lfsbooleanoptionalEnable git-lfs filters (
filter.lfs section).merge_conflictstylestringoptionalMerge conflict style (e.g.
"diff3").pagerstringoptionalDefault pager for output (e.g.
"delta").pathstringoptionalWhere to write the gitconfig file. Defaults to
"~/.gitconfig".pull_rebasebooleanoptionalPull with rebase instead of merge.
Commit and tag signing. Sets
user.signingkey, gpg.format, commit.gpgSign, and tag.gpgSign.usergit.UserConfigUser identity.
git.SigningConfig
formatstringoptionalSigning format. Defaults to
"ssh".keystringThe signing key (e.g. an SSH public key).
git.UserConfig
emailstringEmail address for commits.
namestringFull name for commits.