# dotfiles Personal dotfiles repository ## Install on a new system See [Acknowledgements](#Acknowledgements) for tutorial source. * Prior to the installation, create alias for config * `alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg"` * Add `.cfg` to `.gitignore` * `echo ".cfg" >> .gitignore` * Clone dotfiles into a bare repository * `git clone --bare $HOME/.cfg` * Define the alias in the current shell scope * `alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg"` * Checkout content from bare repository to `$HOME` * `config git checkout` * Step above might fail with a message like: * ``` error: The following untracked working tree files would be overwritten by checkout: .bashrc .gitignore Please move or remove them before you can switch branches. Aborting ``` * Delete `.bashrc` and `.gitignore` * `rm ~/.bashrc ~/.gitignore` * Re-run checkout * `config git checkout` * Set the flag `showUntrackedFiles` to `no` on this specific (local) repo * `config git config --local status.showUntrackedFiles no` ## Acknowledgements I followed [DistroTube](https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg)'s process for setting up a git bare repository as shown in [Git Bare Repository - A Better Way To Manage Dotfiles](https://youtu.be/tBoLDpTWVOM). He references [The best way to store your dotfiles: A bare Git repository](https://www.atlassian.com/git/tutorials/dotfiles) by [Nicola Paolucci](https://www.durdn.com/).