This repository contains all of my personal dotfiles. such as .vimrc .zshrc, .Xresources and i3. They are published here on GitHub so I can easily clone them whenever I need them.
This repository contains a .zshrc file, which you will want to override the
default file created by Zsh. If you need to retain your existing .zshrc file,
move it to a different spot:
mv ~/.zshrc ~/.zshrc.bkNext, ensure that your .dotfiles directory will be ignored by Git (to eliminate
recursion issues) by adding to .gitignore:
touch .gitignore
echo ".dotfiles" >> .gitignoreThen, clone this repository into your home directory:
git clone --bare https://github.com/sayems/dotfiles.git $HOME/.dotfilesCheckout the content of the repository into $HOME:
git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME checkoutIf there are conflicts with existing files, Git will let you know like this:
error: The following untracked working tree files would be overwritten by checkout:
.gitconfig
Please move or remove them before you can switch branches.
Aborting
Be sure to back those up first before moving forward.
Restart your shell session to pick up all the new aliases and configurations.
You'll want to tell Git to ignore untracked files when running git status,
since this repository will only manage certain hand-picked files in your
home directory:
dot config --local status.showUntrackedFiles no
Suppose you just made a change to your .zshrc file and would like to commit it
to your dotfiles repo.
# See your proposed changes
dot status
# Stage up your changes
dot add .zshrc
# Commit it
dot commit -m "Message goes here"
# Push it up
dot pushYou'll want to avoid running an "add all" command (like dot add . or dot add -A)
since only some of the files in the home directory are tracked by Git.
To bring your existing home directory under version control, initialize a bare git repository there and define an alias to help with managing it:
git init --bare $HOME/.dotfiles
alias dot='/usr/local/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
dot config --local status.showUntrackedFiles noBe sure to add the alias to .zshrc, either manually or like this:
echo "alias dot='/usr/local/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'" >> $HOME/.zshrcNow, you can run ordinary git commands in your home directory using your newly
created dotfiles alias:
dot status
dot add .zshrc
dot commit -m "Add zshrc"
dot push