Akihiro's Programmer Blog

Technology Notes for Personal

dotfilesをGithubで管理する

 やろうやろうと思ってたけど、まだやってなかったので試してみます。


 手順は以下の通りです。

 1. Githubにリポジトリを作る

 2. dotfilesを管理用ディレクトリに移す

 3. シンボリックリンクを張る

 4. Githubへpush


 想定しているOSはMacOSです。


dotfilesって?

 homeディレクトリに置かれてる.vimrcとか.bash_profileとか

 頭に.(ドット)が着いている設定ファイル全般をdotfilesと呼ぶらしいです。


何でGithub

 Githubに限らずですが、どうしてリモートリポジトリで管理するのか。

 複数の環境を持つと、いちいち設定ファイルを持ってきたり設定し直すのが手間です。

 外部で管理することで、新しい環境への導入や複数環境での設定の同期が非常に楽になります。

 まだやっていないので皆がそう言ってるってだけなんですが。。。

 何はともあれ、早速試してみましょう。


1. Githubリポジトリを作る

 まずはGithubリポジトリを作っておきましょう。

 1.new repositoryをクリック

 2.Repository namedotfilesにしてCreate repositoryをクリック

 これでOK。


2. dotfilesを管理用ディレクトリに移す

 gitで管理できるように~/dotfilesへ管理したいファイルを移しちゃいましょう。

mkdir ~/dotfiles
mv ~/.vimrc ~/dotfiles
mv ~/.zshrc ~/dotfiles
mv ~/.tmux.conf ~/dotfiles


3. シンボリックリンクを張る

 このままだと設定ファイルを参照できないので、シンボリックリンクを張ります。

 シェルスクリプトとして書いておけば、導入が非常に楽になります。

#!/bin/sh

ln -sf ~/dotfiles/.vimrc ~/.vimrc
ln -sf ~/dotfiles/.zshrc ~/.zshrc
ln -sf ~/dotfiles/.tmux.conf ~/.tmux.conf


 早速実行してみましょう。

$ chmod +x ~/dotfiles/symlink.sh
$ sh ~/dotfiles/symlink.sh

 シンボリックリンクが張られたら成功です!


4. Githubへpush

 それでは最後にGithubpushしちゃいましょう。

 手慣れた人はささっとやっちゃって。手慣れてない人は書いてある通りにやってみましょう。

 xxxxにはGithubのユーザー名が入ります。

$ cd ~/dotfiles
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin https://github.com/xxxx/dotfiles.git
$ git push -u origin master

これで無事Githubにアップロード出来ました!


それから

  • 新しい環境にdotfilesを導入したい時には
$ cd ~
$ git clone git@github.com:xxxx/dotfiles.git
$ sh ~/dotfiles/symlink.sh


  • 新しい変更をGithubに反映させたい時には
$ cd ~/dotfiles
$ git push


  • Githubの変更をローカルに反映させたい時には
$ cd ~/dotfiles
$ git pull


 こんな感じです。


参考サイト

dotfilesをgithubで管理

dotfilesをGitHubで管理する方法