開発中に作成したテストデータなど、リポジトリには含めたくないファイルがある場合。
もちろん.gitignoreが一般的ですが、OSSなどでは自身で勝手に.gitignoreを書き換えられないという状況もあるでしょう。
pre-commitを使う
pre-commit
で、commitの直前に指定したファイル/フォルダをステージングエリアから除外するという方法を使います。
.git/hook/pre-commit を作成
.git/hook/pre-commit
#!/bin/bash
git reset HEAD testfile
git reset HEAD tmpfolder/
実行権限も与えておきます。
$ chmod +x .git/hook/pre-commit
あとはいつもどおり
$ git add .
この時点では不要なファイルもaddされますが...
$ git commit -m "commit message"
とした時に、先ほどpre-commitに記述したファイルおよびフォルダ内のファイルがUntrackedになっています。