chezmoi

A multi-machine dotfile manager, written in Go.

TLDR

Initialize chezmoi on your machine

$ chezmoi init
copy

Tell chezmoi to manage a dotfile

$ chezmoi add [path/to/file]
copy

Edit the source state of a tracked dotfile

$ chezmoi edit [path/to/file]
copy

See changes chezmoi would make

$ chezmoi diff
copy

Apply the changes

$ chezmoi -v apply
copy

Set chezmoi up on another machine by downloading existing dotfiles from a Git repository

$ chezmoi init [https://example.com/path/to/repository.git]
copy

Fetch the latest changes from a remote repository

$ chezmoi update
copy

Help

Manage your dotfiles across multiple diverse machines, securely 

Usage:
  chezmoi [command] 

Available Commands:
  add              Add an existing file, directory, or symlink to the source state 
  apply            Update the destination directory to match the target state 
  archive          Generate a tar archive of the target state 
  cat              Print the target contents of a file, script, or symlink 
  cd               Launch a shell in the source directory 
  chattr           Change the attributes of a target in the source state 
  completion       Generate shell completion code 
  data             Print the template data 
  decrypt          Decrypt file or standard input 
  diff             Print the diff between the target state and the destination state 
  docs             Print documentation 
  doctor           Check your system for potential problems 
  dump             Generate a dump of the target state 
  edit             Edit the source state of a target 
  edit-config      Edit the configuration file 
  encrypt          Encrypt file or standard input 
  execute-template Execute the given template(s) 
  forget           Remove a target from the source state 
  git              Run git in the source directory 
  help             Print help about a command 
  import           Import an archive into the source state 
  init             Setup the source directory and update the destination directory to match the target state 
  managed          List the managed entries in the destination directory 
  merge            Perform a three-way merge between the destination state, the source state, and the target state 
  merge-all        Perform a three-way merge for each modified file 
  purge            Purge chezmoi's configuration and data 
  re-add           Re-add modified files 
  remove           Remove a target from the source state and the destination directory 
  secret           Interact with a secret manager 
  source-path      Print the path of a target in the source state 
  state            Manipulate the persistent state 
  status           Show the status of targets 
  unmanaged        List the unmanaged files in the destination directory 
  update           Pull and apply any changes 
  verify           Exit with success if the destination state matches the target state, fail otherwise 

Flags:
      --cache path                     Set cache directory (default /home/simon/.cache/chezmoi) 
      --color bool|auto                Colorize output (default auto) 
  -c, --config path                    Set config file (default /home/simon/.config/chezmoi/chezmoi.toml) 
      --config-format json|toml|yaml   Set config file format 
      --debug                          Include debug information in output 
  -D, --destination path               Set destination directory (default /home/simon) 
  -n, --dry-run                        Do not make any modifications to the destination directory 
      --force                          Make all changes without prompting 
  -h, --help                           help for chezmoi 
  -k, --keep-going                     Keep going as far as possible after an error 
      --mode mode                      Mode 
      --no-pager                       Do not use the pager 
      --no-tty                         Do not attempt to get a TTY for reading passwords 
  -o, --output path                    Write output to path instead of stdout 
      --persistent-state path          Set persistent state file 
  -R, --refresh-externals              Refresh external cache 
  -S, --source path                    Set source directory (default /home/simon/.local/share/chezmoi) 
      --source-path                    Specify targets by source path 
      --use-builtin-age bool|auto      Use builtin age (default auto) 
      --use-builtin-git bool|auto      Use builtin git (default auto) 
  -v, --verbose                        Make output more verbose 
      --version                        version for chezmoi 
  -W, --working-tree path              Set working tree directory 

Use "chezmoi [command] --help" for more information about a command. 

Copied to clipboard
Raspberry