yadm
Manage dotfiles across multiple computers
TLDR
Override the yadm directory. yadm stores its configurations relative to this directory
Override the yadm data directory: yadm stores its data relative to this directory
Override the location of the yadm repository
Override the location of the yadm configuration file
Override the location of the yadm encryption configuration
Override the location of the yadm encrypted files archive
Override the location of the yadm bootstrap program
SYNOPSIS
yadm [options] command [command-options]
PARAMETERS
--help
Show help message and exit
--version
Show version information and exit
--verbose
Enable verbose output
--profile profile_name
Specify a profile to use
--config config_file
Specify a different config file
init
Initialize a new yadm repository
clone repository_url
Clone an existing yadm repository
add file...
Add files to the yadm repository
remove file...
Remove files from the yadm repository
checkout
Checkout files from the yadm repository
push
Push changes to the remote repository
pull
Pull changes from the remote repository
status
Show the status of the yadm repository
link
Link files to system
DESCRIPTION
yadm is a tool for managing dotfiles using a Git repository. It simplifies the process of keeping your configuration files (like `.bashrc`, `.vimrc`, etc.) synchronized across multiple machines. Instead of manually copying or creating symlinks, yadm automates the process by creating a bare Git repository in your home directory. This allows you to version control your dotfiles, track changes, and easily deploy them to new systems. yadm manages conflicting files by creating symlinks from files stored in the repository to the locations outside the repository. It supports different profiles (using the `--profile` option) to handle machine-specific configurations. This enables users to maintain distinct settings for different environments. yadm also provides features for bootstrapping a new machine by cloning the dotfiles repository and setting up the necessary symlinks, making it easy to get a consistent configuration on any system. The `yadm` command is a wrapper around common `git` commands to achieve desired functionality.
CAVEATS
yadm creates a bare Git repository in your home directory. Backups of your dotfiles are highly recommended before running the init command.
It is crucial to understand how bare Git repositories work to avoid unintended consequences.
<B>PROFILES</B>
Profiles enable you to maintain different configurations for different machines. You can create profile-specific files (e.g., `~/.bashrc.d/bashrc.home`) and then activate the appropriate profile using the `--profile` option. This is useful for managing settings that are specific to a particular environment.
<B>BOOTSTRAPPING</B>
yadm simplifies the process of setting up a new machine with your dotfiles. By using `yadm clone`, you can quickly clone your dotfiles repository and create the necessary symlinks. This ensures that your new system is configured consistently with your other environments, saving you time and effort.
HISTORY
yadm was created to simplify the management of dotfiles, addressing the complexities of manually tracking and syncing configuration files across multiple machines. It builds upon the power of Git for version control and provides a convenient wrapper around common Git operations, tailored for dotfile management. The project evolved to include features like profiles to support machine-specific configurations and automated bootstrapping for new systems, making it a robust and user-friendly solution for maintaining consistent dotfile setups.