dotfilesをgithubで管理する

やろうやろうと思いつつ、1年くらいずっとやってなかったので会社のサーバの設定をするタイミングで試しに手を付けた。
# 設定ファイルとかはコピペが多いので管理するほどでもなかったのだけども

流れ

1. まずはdotfilesディレクトリを作ってそこにdotfilesなファイルたちを放り込む

[9:16]% cd ~                                                                                                                [~]
[9:16]% mkdir dotfiles                                                                                                      [~]
[9:16]% mv .zshrc dotfiles/.                                                                                                [~]
[9:16]% mv .vimrc dotfiles/.                                                                                                [~]

2. そのあとにそれらにシンボリックリンクを張るようなシェルスクリプトを書く
# .gitが入らないようしたいのでgrep -v 'dotfiles/.git$'を忘れない

[9:39]% cat ./dotfiles/setup.sh                                                                                             [~]
#!/bin/bash

for file in `find $HOME/dotfiles -name '.*' | grep -v 'dotfiles/.git$' | perl -nle 'm!dotfiles/(.+)$! and print $1'`; do
    ln -s $HOME/dotfiles/$file $HOME/$file
done
[9:39]%    

3. 一旦シェルスクリプトを実行してリンクを張る

sh -x ./dotfiles/setup.sh

4. githubのページに行き、dotfilesというリポジトリを作成

5. githubのページに書いてある手順通り、dotfilesディレクトリに移動し、git init

[9:55]% cd dotfiles                                                                                                         [~]
[9:58]% git init                                                                                                   [~/dotfiles]
Initialized empty Git repository in /Users/no-kumagai/dotfiles/.git/
 (git)-[master]-[10:03]%                                                                                           [~/dotfiles]

6. README.markdownを作成

[9:54]% cat README.markdown                                                                                      [~/dotfiles]
1. cd $HOME
1. # git clone
1. sh -x ./dotfiles/setup.sh
[9:54]%   

7. addしてcommit

 (git)-[master]-[10:04]% git add .                                                                                 [~/dotfiles]
 (git)-[master]-[10:04]% git commit -m 'first commit'                                                              [~/dotfiles]
[master (root-commit) b41fc1a] first commit
 4 files changed, 77 insertions(+), 0 deletions(-)
 create mode 100644 .vimrc
 create mode 100644 .zshrc
 create mode 100644 README.markdown
 create mode 100755 setup.sh
 (git)-[master]-[10:09]% 

8. そしてpush

 (git)-[master]-[10:09]% git remote add origin git@github.com:monmon/dotfiles.git                                  [~/dotfiles]
  git push -u origin master                                                                                                    
 (git)-[master]-[10:10]%   git push -u origin master                                                               [~/dotfiles]

Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (6/6), 1.22 KiB, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@github.com:monmon/dotfiles.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.
 (git)-[master]-[10:10]%                                                                                           [~/dotfiles]
 (git)-[master]-[10:10]%      

9. おつかれさまでした。