Skip to content

gameforce/dotfiles

Repository files navigation

Adding your config files to GitHub
----------------------------------

You'll also need to Signup for a free GitHub account, and create a new repository. 
GitHub uses public-key cryptography and SSH for authentication, so you.ll need to 
create a SSH public key on each machine you'll be accessing GitHub from. 

Here's how to do this:

$ cd ~/.ssh
$ mkdir backup
$ mv id_rsa* key_backup
$ ssh-keygen -t rsa -C "user@hostname"

It's necessary to have an ssh key manager loaded so that it loads our keys, keychain (http://funtoo.org/keychain) 
is great for this, it's available on portage, yum and aptitude

After adding your public key details to your GitHub account page you're ready to add your config files:

  git init
  git add .zshrc
  git add .vimrc
  git add <any other config files you want to add>
  git commit -a -m 'Initial commit'
  git remote add origin [email protected]:gameforce/dotfiles.git # Your URL will differ
  git push origin master

Now all your config files are on GitHub!

Setting up a new machine
------------------------

You'll need to create a SSH public key on the new machine, just as you did on the previous one.

Once you've done that:

  git init
  git pull [email protected]:gameforce/dotfiles.git .dotfiles
  cd .dotfiles
  git remote add origin [email protected]:gameforce/dotfiles.git

This will create a clone inside .dotfiles, cd to that directory and run ./install.sh 
which will copy everything as a "." file/directory in your $HOME

Now your setup will match your other machine

Making Changes
---------------

The real benefit of storing your config files on GitHub is that it makes it really easy to synchronize 
changes between all your computers. After making a change on one computer:

  git commit -a -m "Useful commit message goes here"
  git push origin master

Then all you need to do on your other machines is issue the following commands:
  cd .dotfiles/
  git pull origin master
  # Only if there are updates run:
  ./install.sh

And you're synced!