ページ

2014/05/11

dotfilesをGitHubで管理する方法

ドットファイルと呼ばれるファイル名の先頭にドットがある設定ファイル(※)を
GitHub で管理する方法について調べたので書いておきます。(※ .zshrc とか)
Mac の移行時に環境構築で dotfiles リポジトリを clone するだけで
zsh とか git とかの設定が新しい環境でもすぐに反映されるので楽チンみたいです。
イケてるエンジニアがやってるって噂なので僕もやりたいと思います。

1. dotfiles フォルダを作成する

cd ~
mkdir dotfiles

2. dotfiles フォルダにドットファイルを移す

mv .gitconfig dotfiles
mv .gitignore dotfiles
mv .vim dotfiles
mv .vimrc dotfiles
mv .zsh dotfiles
mv .zshrc dotfiles

3. ドットファイルのシンボリックリンクを作成するシェルスクリプトを作成する

cd dotfiles
vi dotfilesInstaller.sh
#! /bin/bash
ln -s ~/dotfiles/.gitconfig ~/.gitconfig
ln -s ~/dotfiles/.gitignore ~/.gitignore
ln -s ~/dotfiles/.vim/ ~/.vim
ln -s ~/dotfiles/.vimrc ~/.vimrc
ln -s ~/dotfiles/.zsh/ ~/.zsh
ln -s ~/dotfiles/.zshrc ~/.zshrc
chmod +x dotfilesInstaller.sh
./dotfilesInstaller.sh

4. dotfiles を GitHub で管理する

git init
hub create
git add .
git commit -m "Initial commit"
git push -u origin master

GitHub で管理された dotfiles リポジトリの完成

wada811/dotfiles
これでイケてるエンジニアの仲間入りですかね!

新しい Mac で dotfiles をインストールする

cd ~
git clone git@github.com:wada811/dotfiles.git
clone したら dotfiles フォルダの dotfilesInstaller.sh を以下のように実行したら移行完了です。
chmod +x dotfilesInstaller.sh
./dotfilesInstaller.sh

参考
dotfilesをGitHubで管理,vimプラグインをNeoBundleで管理する方法メモ - Programming Log

dotfiles を追加する際には dotfilesInstaller.sh に追記しなければなりませんが、
以下のように記述すれば追記の必要もないようです。
なんとなく意味はわかりますが、完全に理解しているわけではないので採用していません。そのうち調べます。
#!/bin/sh
cd $(dirname $0)
for dotfile in .?*
do
    if [ $dotfile != '..' ] && [ $dotfile != '.git' ]
    then
        ln -Fis "$PWD/$dotfile" $HOME
    fi
done
DotfilesをGitHubで管理する | fixture.jp