repoverlay
Apply configuration files to git repositories without committing them.
Files are symlinked (or copied with --copy) from overlay sources and automatically excluded from git tracking via .git/info/exclude.
Quick Reference
| Task | Command |
|---|---|
| Apply overlay | repoverlay apply <source> |
| Check status | repoverlay status |
| Remove overlay | repoverlay remove <name> |
| Remove all | repoverlay remove --all |
| Update from GitHub | repoverlay update |
| Restore after git clean | repoverlay restore |
| Create overlay | repoverlay create <name> |
| Sync changes back | repoverlay sync <name> |
| Switch overlays | repoverlay switch <source> |
Installation
Homebrew (macOS/Linux)
Shell installer (macOS/Linux)
|
PowerShell installer (Windows)
irm https://github.com/tylerbutler/repoverlay/releases/latest/download/repoverlay-installer.ps1 | iex
Cargo
From source
Usage
Apply an overlay
# From local directory
# From GitHub (uses default branch)
# From GitHub with specific branch/tag
# From a subdirectory within a repo
# From overlay repository
# Options
Remove overlays
Check status
Update GitHub overlays
Restore after git clean
Create overlays
Create overlays and store them in the overlay repository:
# Short form: detect org/repo from git remote
# Explicit form: specify full path
# Include specific files
# Local output (no overlay repo)
# Preview what would be created
# Overwrite existing overlay
Sync changes back
After modifying files in an applied overlay, sync changes back to the overlay repo:
Both create and sync automatically commit and push to the remote overlay repo.
Switch overlays
Replace all existing overlays with a new one:
Manage cache
Overlay Configuration
Create a repoverlay.ccl in your overlay directory to configure it:
overlay =
name = my-config
mappings =
/= Rename files when applying
.envrc.template = .envrc
vscode-settings.json = .vscode/settings.json
Without a config file, all files in the overlay directory are symlinked with the same relative path.
License
MIT