Commit Your Dotfiles
This is a template to help back up dotfiles to a github repo. Fork, judiciously copy dotfiles into the project, commit, and push.
Why I made this
I came across https://github.com/mathiasbynens/dotfiles and said "damn, that looks great!" so i installed it and immediately lost control of my computer. I vowed to never bulk install dotfiles again.
I started cobbling together my own dotfiles, adding cool features to my development environment. Life is good... until I use another machine. I needed a way to keep my dotfiles in sync across multiple machines. After some poking around I realized that https://github.com/mathiasbynens/dotfiles had what i needed if i removed all the dotfiles and added my own.
Add your own dotfiles as you would with files for any other git project.
Install your dotfiles by cd'ing to your dotfiles directory and then 'source bootstrap.sh' - this will copy the dotfiles from the project and into your home directory.
Alternatively, to update while avoiding the confirmation prompt:
set -- -f; source bootstrap.sh
$PATH
Specify the If ~/.path
exists, it will be sourced along with the other files, before any feature testing (such as detecting which version of ls
is being used) takes place.
Here’s an example ~/.path
file that adds ~/utils
to the $PATH
:
export PATH="$HOME/utils:$PATH"
Add custom commands without creating a new fork
If ~/.extra
exists, it will be sourced along with the other files. You can use this to add a few custom commands without the need to fork this entire repository, or to add commands you don’t want to commit to a public repository.
My ~/.extra
looks something like this:
# Git credentials
# Not in the repository, to prevent people from accidentally committing under my name
GIT_AUTHOR_NAME="Mathias Bynens"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
git config --global user.name "$GIT_AUTHOR_NAME"
GIT_AUTHOR_EMAIL="mathias@mailinator.com"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.email "$GIT_AUTHOR_EMAIL"
You could also use ~/.extra
to override settings, functions and aliases from my dotfiles repository. It’s probably better to fork this repository instead, though.
Sensible OS X defaults
When setting up a new Mac, you may want to set some sensible OS X defaults:
./.osx
Install Homebrew formulae
When setting up a new Mac, you may want to install some common Homebrew formulae (after installing Homebrew, of course):
brew bundle ~/Brewfile
brew cask
Install native apps with You could also install native apps with brew cask
:
brew bundle ~/Caskfile
Feedback
Suggestions/improvements welcome!
Author
Mathias Bynens |
Thanks to…
-
@ptb and his OS X Lion Setup repository
-
Ben Alman and his dotfiles repository
-
Chris Gerke and his tutorial on creating an OS X SOE master image + Insta repository
-
Cãtãlin Mariş and his dotfiles repository
-
Gianni Chiappetta for sharing his amazing collection of dotfiles
-
Jan Moesen and his ancient
.bash_profile
+ shiny tilde repository -
Lauri ‘Lri’ Ranta for sharing loads of hidden preferences
-
Matijs Brinkhuis and his dotfiles repository
-
Nicolas Gallagher and his dotfiles repository
-
Tom Ryder and his dotfiles repository
-
Kevin Suttle and his dotfiles repository and OSXDefaults project, which aims to provide better documentation for
~/.osx
-
anyone who contributed a patch or made a helpful suggestion