LinuxCommandLibrary

dotstate

Modern dotfile manager with Git integration

TLDR

Initialize a new dotstate repository
$ dotstate init [directory]
copy
Add a file to dotstate tracking
$ dotstate add [path/to/file]
copy
Sync dotfiles to current system
$ dotstate sync
copy
Track and commit changes
$ dotstate commit -m "message"
copy

SYNOPSIS

dotstate [command] [options] [arguments]

DESCRIPTION

dotstate is a modern dotfile manager that uses Git for version control while providing a simplified interface for common dotfile operations. It helps users manage configuration files across multiple machines by tracking them in a Git repository.
The tool provides commands for initializing a dotfiles repo, adding files to tracking, synchronizing configurations between systems, and handling platform-specific files. It maintains a clean separation between the actual dotfiles in the home directory and the repository.

PARAMETERS

-c, --config FILE

Configuration file path
-d, --dotfiles DIR
Dotfiles repository directory
-v, --verbose
Enable verbose output
--dry-run
Show what would be done without making changes
-h, --help
Display help and exit
--version
Display version and exit

COMMANDS

init [DIRECTORY]

Initialize a new dotstate repository
add FILE
Add a file to dotstate tracking
remove FILE
Remove a file from tracking
sync
Synchronize dotfiles to current system
status
Show repository status
commit [-m MESSAGE]
Commit changes to repository
push
Push changes to remote
pull
Pull changes from remote
list
List all tracked files

CAVEATS

Requires Git to be installed and configured. May overwrite existing files during sync - backups recommended. Platform-specific configurations need manual handling. Symbolic link handling varies by operating system.

HISTORY

dotstate was created as a modern alternative to traditional dotfile managers, focusing on simplicity and Git integration. It aims to provide the power of version control without the complexity of manual Git operations.

SEE ALSO

git(1), stow(1), chezmoi(1), yadm(1)

> TERMINAL_GEAR

Curated for the Linux community

Copied to clipboard