📦

"dotfiles" とは? 開発環境を統一する設定ファイルの管理術

に公開

はじめに

新しいPCを購入したり、別の環境で開発を始めるとき、いつも使っているツールの設定を最初からやり直すのは面倒ですよね。そんな悩みを解決するのが dotfiles です。

この記事では、dotfiles とは何か、なぜ管理するべきなのか、そして具体的な管理方法について、初心者にも分かりやすく解説します。

dotfilesとは?

  • ホームディレクトリにある「.bashrc」「.gitconfig」など、ファイル名がドット(.)で始まる設定ファイル群の総称
  • それら散在する設定ファイルを ~/dotfiles/ など一箇所へ集め、Git でバージョン管理し、本来の場所へはシンボリックリンクで張り出すリポジトリのこと

例えば、以下のようなファイルが dotfiles にあたります。

  • .claude: Claude Codeの設定ディレクトリ
  • .bashrc / .zshrc: シェルの設定ファイル
  • .vimrc: Vimエディタの設定ファイル
  • .gitconfig: Gitの設定ファイル

これらのファイルは、普段は隠しファイルとして扱われていますが、あなたの開発環境を快適にするための重要な設定が詰まっています。

なぜdotfilesを管理するのか?

dotfiles を管理することで、以下のようなメリットがあります。

  • 環境の再現性: 新しいPCでも、dotfiles をコピーするだけで、いつもの開発環境をすぐに再現できます。
  • 設定の共有: 複数のPCで同じ設定を共有したり、他の開発者と設定を共有したりできます。
  • 設定のバージョン管理: Gitで dotfiles を管理することで、設定の変更履歴を追跡したり、過去の設定に戻したりできます。

dotfilesの管理方法

dotfiles の管理には、いくつかの方法がありますが、ここでは最も一般的な Gitリポジトリで管理する方法 を紹介します。

1. dotfiles用のリポジトリを作成する

まず、dotfiles を管理するためのGitリポジトリを作成します。

mkdir ~/dotfiles
cd ~/dotfiles
git init

2. 設定ファイルをリポジトリに移動する

次に、管理したい設定ファイルを ~/dotfiles ディレクトリに移動します。

mv ~/.vimrc ~/dotfiles/
mv ~/.gitconfig ~/dotfiles/

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

設定ファイルを移動したら、元の場所にシンボリックリンクを貼ります。これにより、システムは元の場所にある設定ファイルを読み込みますが、実際には ~/dotfiles ディレクトリにあるファイルを編集することになります。

ln -s ~/dotfiles/.vimrc ~/.vimrc
ln -s ~/dotfiles/.gitconfig ~/.gitconfig

シンボリックリンク(symbolic link, 略して symlink)とは、

  • 「あるファイル/ディレクトリを 別の場所から“身代わり”として参照できるようにする、 ファイルシステムレベルのショートカット」のこと。

4. GitHubで管理する

最後に、~/dotfiles ディレクトリをGitHubなどのリモートリポジトリにプッシュします。

git add .
git commit -m "first commit"
git remote add origin <your-repository-url>
git push -u origin main

これで、いつでもどこでも dotfiles を復元できるようになりました。

セットアップスクリプトで自動化する

毎回手動でシンボリックリンクを貼るのは面倒なので、セットアップスクリプトを作成しましょう。

# ~/dotfiles/install.sh
#!/bin/bash

# dotfilesディレクトリのパス
DOTFILES_DIR=~/dotfiles

# シンボリックリンクを作成する関数
create_link() {
    local src=$1
    local dest=$2
    
    # 既存のファイルがある場合はバックアップ
    if [ -e "$dest" ]; then
        echo "Backing up existing $dest to $dest.backup"
        mv "$dest" "$dest.backup"
    fi
    
    # シンボリックリンクを作成
    ln -sf "$src" "$dest"
    echo "Created symlink: $dest -> $src"
}

# 各設定ファイルのシンボリックリンクを作成
create_link "$DOTFILES_DIR/.vimrc" ~/.vimrc
create_link "$DOTFILES_DIR/.gitconfig" ~/.gitconfig
create_link "$DOTFILES_DIR/.zshrc" ~/.zshrc

echo "Dotfiles setup complete!"

実行権限を付与して使用します:

chmod +x ~/dotfiles/install.sh
./install.sh

新しい環境での復元方法

新しいPCや環境で dotfiles を復元する手順は以下の通りです:

# 1. dotfilesリポジトリをクローン
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles

# 2. セットアップスクリプトを実行
cd ~/dotfiles
./install.sh

これだけで、いつもの開発環境が復元されます!

Claude Code の設定も管理する

Claude Code の設定ファイルも dotfiles で管理できます:

# Claude Code のグローバル設定を dotfiles に移動
mkdir -p ~/dotfiles/claude
mv ~/.claude/CLAUDE.md ~/dotfiles/claude/
ln -s ~/dotfiles/claude/CLAUDE.md ~/.claude/CLAUDE.md

# install.sh に追加
create_link "$DOTFILES_DIR/claude/CLAUDE.md" ~/.claude/CLAUDE.md

プロジェクト固有の CLAUDE.md テンプレートも管理できます:

# プロジェクト用テンプレート
~/dotfiles/claude/
├── CLAUDE.md                    # グローバル設定
└── CLAUDE.project-template.md   # プロジェクト用テンプレート

# 新規プロジェクトでの使用
cp ~/dotfiles/claude/CLAUDE.project-template.md ./CLAUDE.md

注意点

dotfiles を管理する際は、以下の点に注意してください:

1. 機密情報を含めない

  • パスワード、APIキー、秘密鍵などは絶対に含めない
  • .gitignore で除外するか、環境変数で管理する
# .gitignore の例
.ssh/
.aws/credentials
.env

2. 既存ファイルのバックアップ

  • セットアップスクリプトは既存ファイルを .backup として保存
  • 問題があれば元に戻せる

3. OS依存の設定に注意

  • macOSとLinuxで設定が異なる場合は条件分岐を使う
# OS判定の例
if [[ "$OSTYPE" == "darwin"* ]]; then
    # macOS specific
    create_link "$DOTFILES_DIR/.zshrc.mac" ~/.zshrc
else
    # Linux specific
    create_link "$DOTFILES_DIR/.zshrc.linux" ~/.zshrc
fi

まとめ

dotfiles を管理することは、開発環境を統一し、効率的な開発を行うための第一歩です。この記事を参考に、ぜひ dotfiles の管理を始めてみてください。

Discussion