Skip to content
My own .vimrc, .gitconfig, and friends. Heavily inspired by garybernhardt/dotfiles
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.omz-custom/themes Add npm version to prompt Jul 21, 2017
img2ansi Add new img2ansi images Jun 14, 2016
.ackrc Teach ack about scss May 15, 2014
.ansible.cfg No cows Nov 11, 2016
.aprc AwesomePrint defaults Jul 24, 2016
.bashrc Add fzf to shell Feb 2, 2017
.gemrc first Jan 19, 2013
.gitconfig Load a ghe git config in ~/ghe Jun 28, 2019
.gitignore Load a ghe git config in ~/ghe Jun 28, 2019
.gvimrc first Jan 19, 2013
.hyper.js Bump fontsize in hyper term Aug 15, 2018
.irbrc Simple irb prompt Jul 24, 2016
.irbrc_rails Don't assume ActiveRecord is present with Rails Feb 1, 2016
.pryrc Add Rails console SQL output to pry Dec 23, 2015
.shell-common Hard delete all git branches deleted from origin Jul 2, 2019
.shell-env Redesign my shell setup like @chorn's dotfiles Mar 8, 2019
.shell-path Add gopath/bin to PATH Apr 1, 2019
.tmate.conf A more soothing tmate status-left Jun 12, 2014
.tmux.conf Remove screen-256color setting from tmux conf Aug 31, 2017
.tool-versions Update to Elixir 1.3.4 Oct 20, 2016
.vimrc Allow JS specs to use a given direct_command Jun 5, 2019
.zlogin Add .zlogin RVM setup Dec 23, 2015
.zshenv Switch to chorn-zsh-prompt and cleanup a lot Mar 15, 2019
.zshrc Add iterm2 shell integration May 2, 2019
Brewfile Fix Brewfile May 1, 2019
Quiver-settings.json Add some attribution to the best dotfiles Mar 8, 2019

sdball's dotfiles

These are my dotfiles, but not are absolutely not all mine because I steal from the best.

These dotfiles are also my home directory.

Seriously. Check out the .gitignore file. Anything look familiar?

WTF why?

Because it's easy! If anything changes or creates a new dotfile or subdirectory in my home directory it's extremely easy for me to see what changed and how much.

Before I did this I was always annoyed with scripts and installations that helpfully modified my files. I'd always forget exactly what was my configuration and what was generated.

WTF security?

For sure. Since the entire home directory is inside the git repo you have to be extra double sure that you don't push anything sensitive.

In practice, that means adding lots to the .gitignore file that you don't want to be included as part of the dotfiles repo.

I also maintain a .local_zshrc file on each machine since I invariably have machine specific settings.


If you'd like to try this out:

  1. git init in your home directory
  2. git add .
  3. Loop between git st and editing .gitignore until you are satisfied
  4. Commit!
  5. Push up the repo wherever: or just maintain a local git repo if you only have one machine.

Second, etc. machines with dotfiles you DON'T care about

  1. git init the home directory
  2. git remote add origin path/to/repo OR git remote add readonly path/to/readonly
  3. git fetch origin (or git fetch readonly)
  4. git reset --hard origin/master (or git reset --hard readonly/master)

I use "readonly" when I'm on a machine just I just want to configure.

Second, etc. machines with dotfiles you DO care about

Basically: setup the repo, create a branch for the machine, commit the dotfiles, pull down the "master" dotfiles, and merge them with the local dotfiles.

  1. git init the home directory.
  2. git co -b machine-name
  3. Do the git st and .gitignore loop.
  4. Commit!
  5. git co master
  6. git remote add origin path/to/repo
  7. git fetch origin
  8. git reset --hard origin/master
  9. git co machine-name
  10. git rebase master
  11. Fix any conflicts.
  12. git co master
  13. git merge --no-ff machine-name
You can’t perform that action at this time.