From ab9cf4193f39cb3f694f3db468dab8125865ff5e Mon Sep 17 00:00:00 2001 From: jbjjbjjbj Date: Wed, 1 Feb 2017 16:07:16 +0100 Subject: Added summary of article --- README.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/README.md b/README.md index 895d550..2cd65dd 100644 --- a/README.md +++ b/README.md @@ -6,3 +6,48 @@ This is where i keep my dotfiles and scripts. I use [this](https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/) method of managing dotfiles +If the link above is broken, here is a short summary. + +The method comes from this [thread](https://news.ycombinator.com/item?id=11070797). The idea is to transform your home folder into a git repository, and then add the files you edited. + +### First time setup + +Make a new bare github repository + +Initialize git + +`git init --bare $HOME/.cfg` + +Add the easy to use alias + +`alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'` + +Set git option + +`config config --local status.showUntrackedFiles no` + +This is important, because othervise git vil print every file in your home directory. + +Remember to add `alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'` to your shellrc + +Now commands like `config add`, `config commit`, `config push` and `config pull` can be used to manage and sync you config files to github. + +### Add to new computer + +Configure the alias + +`alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'` + +Make gitignore +`echo ".cfg" >> .gitignore` + +Clone repository +`git clone --bare $HOME/.cfg` + +Checkout +`config checkout` + +Backup or delete files that conflict this command and then run `config checkout` again + +And turn off the tracking +`config config --local status.showUntrackedFiles no` -- cgit v1.2.3