設定ファイル(dotfiles)をGitHubで管理する

~/.zshrcや./emacs.d等の各アプリケーションの設定ファイルをGitHub上で管理すると他のPC(仕事用)などでも同じ設定を共有できてるということでやってみました。

基本的なアイデアとしては、以下のようになります。

  1. ホームディレクトリ直下にdotfilesというフォルダを作りそこに各アプリケーションの設定ファイルを配置し、ホームディレクトリにはそれらへのシンボリックリンクを作成します。
  2. dotfilesディレクトリをGitHub上にpushし共有します。
  3. 他のPCではdotfilesディレクトリをGitHub上からcloneし、そのディレクトリから1と同様にシンボリックリンクをホームディレクトリに作成することで同じ設定ファイルを共有します。

それでは、手順を追っていきます。

Gitのインストール

GitのインストールはHomebrewでやっておきます。

$ brew install git

Gitの設定は以下の2つをやっておきます。

$ git config --global user.name [ユーザ名]
$ git config --global user.email [Eメール]

GitHubの準備

  1. https://github.comでアカウントを作成します。
  2. Generating SSH Keys · github:helpの手順に従ってSSHの公開鍵をGitHubに登録します。
  3. 個人ページのトップ画面からリポジトリを作成します。僕は「dotfiles」という名前のリポジトリにしました。

Gitリポジトリの作成とGitHub上へのPush

以下コマンドで行います。

$ mkdir ~/dotfiles
(ホームディレクトリ直下にdotfilesディレクトリを作成)
$ cd ~/dotfiles
$ git init
(Gitリポジトリを作成)
$ mv ~/.zshenv .
$ ln -s .zshenv ~/.zshenv
(共有したい設定ファイルをdotfilesディレクトリに移動し、シンボリックリンクをホームディレクトリ直下に作成する)
$ git add .zshenv
$ git commit -m 'zsh setting file commit'
(共有したい設定ファイルをコミット)
$ git remote add orign git@githob.com:[GitHub上のユーザ名]/[GitHub上のリポジトリ名(dotfiles)].git
$ git push origin master
(コミットした設定ファイルをGitHub上にPush)

共有する設定ファイル

僕はとりあえずzshの設定ファイルを共有しましたが、シェルの設定ファイルを共有する人が多いみたいです。
あとはvimEmacs等のエディタの設定ファイルにも使えます。
注意点としてはGitHubのリポジトリは無料のプランだとすべて公開リポジトリなので.sshフォルダなど公開してはまずいファイルが含まれているものは共有しないように注意しましょう。