ドットファイル(設定ファイル)を直接Gitで管理する —— リンクを作成したりは面倒

(どなたでも、どのような内容でも参加できる「自由ライセンスで記事を公開してみよう Advent Calendar 2017」は参加者募集中です。お気軽にご参加ください。🙏)

📁 📁 📁 📁

Gitに慣れてくると、ホームディレクトリ以下の設定ファイルたち、いわゆるドットファイルもGitで管理したくなります。
よく紹介されている方法は、ドットファイルを置く専用のディレクトリを用意して、そのディレクトリをGitの管理下に置き、そこからホームディレクトリ以下にシンボリックリンクを張る方法です。

しかし、これは面倒なので私はホームディレクトリを直接Gitの管理下に置いています。
乱暴かも知れませんが、とりあえず今まで問題を感じたことはありませんので、方法を簡単に紹介します。

初期化

当然、ホームディレクトリで行なうことになります。

cd
git init

~/.git/ が作られます。
このリポジトリの設定である ~/.git/config と、全体の設定である ~/.gitconfig を混同しないよう注意します。

除外

まず、~/.gitignore で全てのファイルを除外します。

~/.gitignore
*

こうしないと、ホームディレクトリ以下のファイルが全て Untracked file として報告されてしまいます。
Gitで管理したいファイルだけ対象になるような ~/.gitignore を作ってもいいのですが、面倒なので * でよいでしょう。

ファイルを管理対象に加える

git add で好きなファイルを指定します。
全てが .gitignore で除外されていますので、-f, --force オプションが必要です。

cd
git add -f .vimrc

管理しているファイルの一覧

現在どのファイルがGitで管理されているかが解りにくいですが、git ls-files で確認できます。

cd
# 全て
git ls-files
# ディレクトリを指定
git ls-files .config/

新しい環境で

例えばリモートリポジトリを使用しているならば、そこからホームディレクトリに直接もって来れますね。

cd
git clone https://example.com/foo/home.git ./

GitHubなどの公開リポジトリでドットファイルを公開している方々もいますが、ちょっと恐いですね。
私は色々と熟練するまでは止めて置きます。

この記事のライセンス

クリエイティブ・コモンズ・ライセンス
この記事はCC BY 4.0(クリエイティブ・コモンズ 表示 4.0 国際 ライセンス)の元で公開します。