GitHub と homesick を使って複数 Mac 間で dotfiles を同期する

github
277件のシェア(すこし話題の記事)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

複数 Mac 間で、.vimrc.zshrc などの設定ファイル(dotfiles)の同期って面倒くさいですよね。
dotfiles の管理には、GitHub とシェルで管理したり、Dropbox を使ったりあるようですが、
最近 homesick という gem を教えてもらい、簡単に管理することができたので、私はコレを使っています。

用意するもの

  • GitHub のアカウント
  • Mac *1

homesick のインストール

homesick は gem install で簡単にインストールできます。

$ gem install homesick

rbenv を使ってる場合は、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.urlhttps になっているので、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/

脚注

  1. Windows では試していません。。