dotfiles管理方法まとめ

この記事は前職のブログに書いた内容を再構成してます。 前職のブログは これ

ここ数年の僕のdotfiles管理方法をまとめました。

先に結論

homeshick をつかってGitHubに登録したdotfilesを配置、管理してます。

homeshickとは

homeshickとは https://github.com/andsens/homeshick で公開されているdotfilesを同期するためのツールです。 homesick というRubyGemがあるのですが その機能をまねて作られたそうですbashで動くのでインストールの手間と環境依存が少ないので僕はhomeshickを愛用しています。

後述のdotfiles用のレポジトリの作成、ファイルの追加、追加したファイルのsymlinkを作成するなど、便利なコマンドがそろっているのがhomeshickの便利なところです。

dotfilesをGitHubで管理する

僕のdotfilesは https://github.com/jiska/dotfiles_castle で公開しています。 dotfilesをgitで管理することで設定変更時の差異を確認したりちょっと書きかけだけど保存しておきたいなど気軽に作業できます。 またGitHubで公開することで他の環境からも参照しやすくしています。 たとえば家で設定した内容を会社で使ったりなど、環境構築が楽できます。

特別な設定を行っているdotfiles

いくつかのファイルには特別な設定を行っているのでかいつまんで記載します。

~/.ssh/config

~/.ssh/config は公開はしたくないけどバージョン管理したいファイルのかなり上位に上がると思います。 こういったものは GitHubのプライベートレポジトリに保存しています。 手順は homeshick link するだけなので簡単です、環境によってブランチを変えるだけで設定を変えることもできるので便利です。

~/.gitconfig

~/.gitconfig では includeincludeIf で特定ファイルを特定条件で読み込むことができるので以下のように ~/.gitconfig.local を読み込むようにしています。

github.com

僕は会社とか自宅とか、git commitする環境でユーザー名やメールアドレス、GPGKEYを変更したいので以下のように設定しています。

$ cat ~/.gitconfig.local
[user]
    name = yusuke mori
    email = XXXXXXXXXXXXXXXXX
    signingkey = XXXXXXXXXXXXXXXX
# ...他にもつらつら記述してますが割愛

gitconfig 書き方の例

オワリ

皆さんもお試しください。