おれのメモ帳_φ(-ω-`*)メモメモ

新しく覚えた Git コマンド

git 管理下にあるファイルをあえて無視する

主に設定ファイル等、gitで管理しておきたいけど、ローカル環境用に変更する必要があるものを指定する。

$ git update-index --skip-worktree [ファイルパス]

以下の無視方法だと、git-pull したときに リポジトリのファイルでローカルが置き換わってしまい、ローカル環境の設定ファイルが跡形もなくなってしまうので注意。

$ git update-index --assume-unchanged [ファイルパス]

ずっと無視なら最初の方法で、一時的に無視しておきたいなら2番目の方法で。
参考サイト参照。

【利用例】
プロジェクト内の空フォルダ全部に.gitkeepを配置、コミットした後、.gitkeepを無視したい場合。
以下で空フォルダに.gitkeepを作成したあと、コミットし、

$ find . -type d -name .git -prune -o -type d -empty -exec touch {}/.gitkeep \;

以下で、.gitkeepの変更を無視する。

$ find . -type f -name .gitkeep -exec git update-index --skip-worktree {} \;

キャッシュフォルダなどの場合、キャッシュクリアすると.gitkeepも含めて全部消えてしまうので、変更差分として出てきて困る、というところで利用。

git 管理下のファイルを一覧表示
$ git ls-files