Nikushi's blog Our Time is Limited.

homesickとgithubでドットファイルを管理する

正月に時間があったのでドットファイルをhomesickを使ってgithubで管理するようにした。

動機としては、昨年転職してから会社PCがMacになり家と会社のMacで設定が微妙に異なることがあり煩わしいので揃えてしまおうとおもったためです。

github上に置いたドットファイルをマスタとして扱い、各PCにリポジトリをgit cloneしてシンボリックリンクを張れば済みます。

しかしながら、lnコマンドで1ファイルづつリンク作るのもPC台数が複数あると面倒くさく怠慢により機能しなくなることが予想されます。 Github dotfiles にはdotfilesの管理にまつわる先人の知恵が紹介されていましたので、この中からカジュアルそうなツールで homesick を導入しました。他にも事例はあるので自分の好みにあう方法を探すのもよいでしょう。

dotfiles

github上にdotfilesという名前で専用リポジトリを作りましょう。名前は何でもいいです。 なお、homesickの特性上、github上のリポジトリルートにhomeディレクトリを作成してhomeディレクトリ以下にドットファイルを置く必要がありました。 参考までに(参考にならないですが) 私のリポジトリ です。

homesick

gemコマンドでインストールできます。

$ gem install homesick

github上のdotfilesリポジトリをhomesickに登録します。~/.homesick/以下にgit cloneされます。

$ homesick clone git@github.com:niku4i/dotfiles.git

登録したリポジトリのドットファイルを~/以下に適用。

$ homesick symlink dotfiles

既にローカルPC上に同じドットファイルがある場合、上書く前にy/nで訪ねられますのでご安心を。

現在homesickに登録されたリポジトリ一覧を確認

$ homesick list
dotfiles  git@github.com:niku4i/dotfiles.git

githubのリポジトリをpull(ローカルのドットファイルが更新される)

$ homesick pull dotfiles

細かい使い方はhomesick helpを参照してください。

homesick cloneでは複数のリポジトリを登録できるので、Github Enterpriseを導入しているような会社であれば会社用のドットファイルリポジトリ、全PC共通のドットファイルはgithub.comに、といった使い方もできて便利だとおもいました。