The basic usage syntax looks like this:

dotgit [flags] {action} [category [category]]

Where action is one of the actions listed below and category is one or more categories or groups to activate. If no categories are specified dotgit will automatically activate the common category as well as a category with your machine’s hostname.

Using categories

When you run dotgit all of its actions will be limited to the categories that are activated. If you don’t specify any categories the default behaviour is to activate the common category as well as a category with your machine’s hostname (e.g. my-laptop).

When you run dotgit all the files in the filelist that are not part of the active categories will be ignored. You can run dotgit with two verbose flags -vv to see what categories are currently active.


-h, --help

Display a help message

-v, --verbose

Increase dotgit’s verbosity level. Can be specified multiple times


It is a good idea to run dotgit with at least one -v flag since no output will be generated by default (unless there is an error).


When specified dotgit won’t make any changes to the filesystem. Useful when running with -v to see what dotgit would do if you run a command


Activates “hard” mode where files are copied rather than symlinked. Useful if symlinking isn’t an option or if you want the dotfiles to live on the machine independently of the dotgit repo.


If you want to use hard mode you need to specify it every time you run dotgit



Initializes a new dotgit repository. Creates an empty filelist and also runs git init if the repo is not a valid git repository. You only need to run this once (when you set up a new dotgit repo). Running this multiple times has no effect.


Updates the dotgit repository. Run this after you made changes to your filelist or if you want to add the changes to non-symlinked files to your repo (e.g. encrypted files). This will save your dotfiles from your home folder in your dotgit repo, and also set up the links/copies to your dotfiles repo as needed (runs a restore operation after updating).


When you run the update command dotgit will replace any files in the repo with those in your home folder. Make sure to run the restore command first on a new machine otherwise you might end up inadvertently replacing files in your repo.


Links or copies files from your dotgit repo to your home folder. Use this if you want to restore your dotfiles to a new machine.


Removes all the dotfiles managed by dotgit from your home folder (run first with the -v --dry-run flags to see what dotgit plans on doing).


Prints which changes have been made to your dotfiles repo since the last commit.


This will generate a git commit with all the current changes in the repo and will ask you if you want to push the commit to a remote (if one is configured).


Allows you to change your encryption password.