kaakaa Blog

この世は極楽 空にはとんぼ

Gitでパスワードなどが入力されたファイルを履歴管理するとき

備忘録。

Gitを使って開発を進めている時に、なんらかのサービスのIDやパスワードなどの認証情報が記述されたファイルを扱いたいときがあります。

auth.conf

{
    "ID": "foo",
    "PASS": "bar"
}

開発中は自分のID/PASSを入力しますが、それをバージョン管理に乗せて公開したくはありません。
.gitignoreに記述すると、そもそも認証ファイル自体がバージョン管理に乗らないか、もしくは既にバージョン管理下にあるファイルに対しては.gitignore設定が効きません。

そんな時に使えるのがGitのskip-worktree。
既に git 管理しているファイルをあえて無視したい

最初にauth.confのサンプルファイルをadd/commitして、auth.confに対してskip-worktreeを設定すると、その後auth.confに自分のID/PASSを入力するなどの変更を加えてもステージングの対象とならないようになります。