This repository contains my personal configurations, managed via a Git Bare Repository. This approach tracks files directly in ~/.config without the need for symlinks.
Add the dots alias to your shell profile to interact with the repository.
alias dots='git --git-dir=$HOME/.cfg/ --work-tree=$HOME/.config'
echo "alias dots='git --git-dir=$HOME/.cfg/ --work-tree=$HOME/.config'" >> ~/.config/fish/config.fish
Clone the repository metadata into a hidden directory in your home folder.
git clone --bare git@github.com:cxinu/dotfiles.git $HOME/.cfg
Checkout the files into your .config directory.
dots checkout
Tip
If the checkout fails due to existing files, you can force it (caution: this overwrites local changes):
dots checkout -f
Ensure the repository only shows the files you've explicitly added.
dots config --local status.showUntrackedFiles no
Use the dots alias just like the standard git command:
dots status
dots add <file>
dots commit -m "update message"
dots push origin master
For a visual management experience, use the lazygit wrapper:
# Add to config.fish
alias ldots='lazygit --git-dir=$HOME/.cfg --work-tree=$HOME/.config'