概要
かなり特殊ケースだが、自分は遭遇した。
- ローカルの開発環境で本番の再現をしたい
- DB はダンプを取って FTP で持ってきた
- アップロードされている現状の画像は欲しいが FTP だと面倒なので
git clone
時に持って行きたい - 今後アップロードされる画像は git 管理対象にしたくない
git update-index --assume-unchanged
については下記の記事が参考になる。
既に git 管理しているファイルをあえて無視したい - Qiita
コード
assume-unchanged.sh
みたいな名前で作る。
#!/bin/sh
array=(`ls -ald $(find "$1") | awk '$1 !~ /d/ {print $9 }'`)
for var in ${array[@]}
do
var=`printf ${var}`
echo $var
git update-index --assume-unchanged $var
done
実行と確認
本番で画像アップロードの変更があったら下記スクリプトを実行する。
git ls-files -v
の先頭が小文字になっていれば成功。
$ chmod 700 assume-unchanged.sh
$ ./assume-unchanged.sh ディレクトリパス
$ git ls-files -v