dotfilesは先頭に.
がつくファイルという意味から派生して各種設定ファイルという意味で使われていると思います。サーバーを行ったり来たりしてるとそういうファイルは何回も書くのでどこかに保存しておけばコピーするだけでいいので楽です。管理するとなると当然そこにgitが出てくるわけですが、どうやってその設定ファイルとgitリポジトリの中身を同期させましょう? コピーが一番単純ですが、毎回コピーするのは面倒くさいです。リンク系ならどうでしょう? シンボリックリンクだとgitはリンク情報しか記録しないのでファイルの中身がリポジトリに入りません。でもハードリンクならそれができます。ハードリンクは同じinodeに二つの同列の名前をつけるのでふつうのファイルと同じように扱えるのです。これでgit管理が捗りそうです。実際私もこの方法でやっていました。しかしたまにリンクが切れるのです。gitはハードリンクのことを考えないのでcheckoutとかするときにファイルを上書きすればいいのですが、置き換えてしまうこともあるのでそうするとinodeが変わり、以前指していたファイルを参照できなくなります。すると設定ファイルとgitを同期できなくなるので振り出しに戻ってしまいます。
gitを使う以上inodeの変更は避けられないので、基本に立ち戻りコピーする方法を採ります。コピー用のシェルスクリプトを作ってしまえば、どのみちgit add
したりgit commit
したりするので、同期の手間はあまりかからないと思います。ただ、この方法だと設定ファイル -> リポジトリ
の一方向にはなってしまいます。双方向するツールにlsyncd
などがありますが今回の用途にはあまり向かないのでとうぶんは「コピー用スクリプトを書く」で行こうと思います。暇だったら何かツールを書くかも知れません。