[[dotfiles]] リポジトリは、設定ファイル (`.zshrc`、`.gitconfig` など) を [[Git]] で管理する仕組み。 ## 問題: 設定ファイルは決まった場所にある アプリケーションは `~/.zshrc` など決まった場所を参照するため、設定ファイルを別の場所に移動できない。 ## 解決策: シンボリックリンク ``` ~/ ├── .zshrc → ~/dotfiles/.zshrc(リンク) │ └── dotfiles/ ← Gitリポジトリ ├── .zshrc ← 本体 └── install.sh ← リンクを作るスクリプト ``` 設定ファイルの本体を `dotfiles/` に置き、ホームディレクトリにはシンボリックリンクを配置する。 ## シンボリックリンクの仕組み シンボリックリンクは「参照先のパス文字列だけを持つ特殊なファイル」。 ```bash # シンボリックリンクを作成 ln -s ~/dotfiles/.zshrc ~/.zshrc # 確認 ls -la ~/.zshrc #> lrwxr-xr-x .zshrc -> /Users/tanu/dotfiles/.zshrc # ↑ パス文字列(数十バイト) # 参照先を表示 readlink ~/.zshrc #> /Users/tanu/dotfiles/.zshrc ``` - ファイルタイプは `l`(link) で示される - 読み込み時は自動的に参照先のファイル内容が返される ## メリット - バージョン管理: 設定の変更履歴を Git で追跡できる - バックアップ: GitHub に push しておけば消えない - 環境の再現: 新しい PC で clone してスクリプト実行するだけ - 複数マシン同期: 自宅/会社で同じ設定を使える ## 関連ノート - **[派生]** [[dotfiles ではパスをハードコードせず環境変数を使う]]: 本ノートのシンボリックリンク管理を、環境間で移植可能にするための拡張 - **[派生]** [[dotfiles ではインストール対象を宣言的な設定ファイルで管理する]]: 本ノートのリンク管理と組み合わせる運用拡張