Bare git dotfiles alternative: Dotfiles Pro
The bare-git approach (git init --bare $HOME/.dotfiles plus a dotfiles alias) versions your home directory with no tool at all beyond git. It's the minimalist's favorite, and for a single machine with identical config, it's hard to beat. Dotfiles Pro trades that minimalism for managing the whole machine: packages, system configuration, repositories, templated per-machine config, and dotfiles, for one laptop or a fleet.
Bare git vs Dotfiles Pro
- Tooling: bare git needs nothing extra; Dotfiles Pro needs Ansible (the installer provisions it).
- Per-machine differences: bare git handles them by hand (branches, manual edits); Dotfiles Pro merges
host_vars/group_varsand templates with Jinja. - Machine state: bare git versions files only; Dotfiles Pro installs packages and configures the system.
- Team: bare git has no team story; Dotfiles Pro shares a baseline as a collection each person pulls into their own config repo.
When bare git is the better choice
- One machine, config that rarely differs, and a wish for zero dependencies.
- You want raw
gitover your home directory and nothing more.
When to choose Dotfiles Pro
- Per-machine differences have become manual toil.
- Packages, services, and repositories should be managed too.
- You're rolling out to several machines or a team.
Migrating from a bare git repo
Files you track verbatim go in the dotfiles role's dotfiles_list, which links them from your repo. Structured config (git identity, aliases) becomes role vars, machine-varying files host_vars / group_vars and Jinja, shell config a ~/.profile.d/ drop-in. Keep the bare repo until the playbook owns everything; the across-machines guide shows the end state.
See the full alternatives comparison for the scored tables.