GitHub と homesick を使って複数 Mac 間で dotfiles を同期する
複数 Mac 間で、.vimrc や .zshrc などの設定ファイル︵dotfiles︶の同期って面倒くさいですよね。
dotfiles の管理には、GitHub とシェルで管理したり、Dropbox を使ったりあるようですが、
最近 homesick という gem を教えてもらい、簡単に管理することができたので、私はコレを使っています。
用意するもの
●GitHub のアカウント ●Mac *1homesick のインストール
homesick は gem install で簡単にインストールできます。$ gem install homesickrbenv を使ってる場合は、rehash しておきましょう。
$ rbenv rehash
GitHub に dotfiles リポジトリを作成
GitHub にリポジトリを作成します。 先ずは、ローカルに dotfiles ディレクトリを作成し、git init しておきます。$ mkdir ~/dotfiles && cd ~/dotfiles $ git init Initialized empty Git repository in /Users/yamato/dotfiles/.git/次に home ディレクトリを作成し、その中に管理したい dotfiles をコピーします。
$ mkdir home && cd home $ cp ~/.vimrc . $ cp ~/.zshrc .GitHub にリポジトリを作成します。ここでは GitHub をコマンドラインから操作できる Hub を使っています。
$ hub create Updating origin created repository: yamato_no_github/dotfiles作成が終わったら、push しましょう。
$ git add . $ git commit -m 'Initial commit' $ git push -u origin master
dotfiles を homesick 管理下に置く
今作ったリポジトリを homesick clone コマンドによって GitHub から clone します。$ homesick clone yamayo/dotfiles git clone https://github.com/yamato_no_github/dotfiles.git to /Users/yamato/.homesick/repos/dotfiles~/.homesick/repos/dotfiles に clone されます。 ホームディレクトリに移り、symlink コマンドでシンボリックリンクを貼ります。
$ cd ~ && homesick symlink dotfiles作成されたシンボリックリンクを確認しましょう。
$ ls -la ・・・ ・・・ .vimrc -> /Users/yamato/.homesick/repos/dotfiles/home/.vimrc ・・・ .zshrc -> /Users/yamato/.homesick/repos/dotfiles/home/.zshrc ・・・homesick で clone してくると remote.origin.url が https になっているので、ssh に変更しておきます。
$ cd ~/.homesick/repos/dotfiles $ git config --list | grep remote.origin.url remote.origin.url=https://github.com/yamato_no_github/dotfiles.git $ git config remote.origin.url git@github.com:yamato_no_github/dotfiles.gitあとはこの ~/.homesick ディレクトリで管理するので、最初に作った dotfiles ディレクトリは削除しておきましょう。
$ rm -rf ~/dotfilesこれで他の Mac からも homesick をインストールし clone することで同期できるようになります。
まとめ
最近は、Boxen などを使って Mac のコンフィグを行ったり、自動化を行うツールも増えてきていますね。 なるべく同じ作業は減らして、世界を変えるためのコードを書いていきたいですね。参考サイト
http://dotfiles.github.io/脚注
- Windows では試していません。。 ↩