LinuxCommandLibrary

homeshick

git-based dotfile synchronizer written in Bash

TLDR

Create a new castle (dotfiles repository)
$ homeshick generate [castle_name]
copy
Track a file in your castle
$ homeshick track [castle_name] [path/to/file]
copy
Go to a castle directory
$ homeshick cd [castle_name]
copy
Clone a castle from GitHub
$ homeshick clone [github_username]/[repository_name]
copy
Symlink all files from a castle
$ homeshick link [castle_name]
copy

SYNOPSIS

homeshick command [arguments]

DESCRIPTION

homeshick is a Git-based dotfile synchronizer written in Bash. It uses "castles" (Git repositories) to manage dotfiles, creating symlinks from the repository to your home directory.
Each castle is a Git repository stored in ~/.homesick/repos/. Files tracked in a castle are moved into the repository and replaced with symlinks pointing back to the repository copy. This allows version control and easy synchronization across machines.

PARAMETERS

generate NAME

Create a new castle (dotfiles repository)
track CASTLE FILE
Add a file to a castle and replace with symlink
cd CASTLE
Change directory to a castle
clone URL
Clone a castle from a Git repository
link CASTLE
Create symlinks from castle to home directory
pull CASTLE
Pull updates for a castle
check
Check if any castles have updates

CAVEATS

Requires Bash and Git. Symlinks may not work correctly on some filesystems or in containers. Conflicts can arise when multiple castles contain the same file.

HISTORY

homeshick was created by Anders Ingemann as a pure Bash alternative to homesick (a Ruby gem). The name combines "home" (dotfiles) with "shell" (Bash implementation).

SEE ALSO

chezmoi(1), stow(8), git(1)

> TERMINAL_GEAR

Curated for the Linux community

Copied to clipboard