Git

gitでcommit前にsymlinkを強制的に排除する

gitで管理していたディレクトリにシンボリックリンクが含まれていたんだけど、git addしたらシンボリックシンクまでaddされてしまった。
シンボリックリンクごと管理する場合もあるだろうけど、そのディレクトリでは別に必要なかった。
というより、むしろ管理しないで欲しい。

ということで、git commitにhookし、symlinkを強制的にunstageする(コミットしない)スクリプトを用意した。
先に言っておくけど、シンボリックリンクは問答無用でコミット対象から外される。
このシンボリックリンクだけは生かしておきたいんだよね〜〜という場合は考慮していないので、自分でどうにかしてほしい。

https://gist.github.com/yacoolto/12ae8cb7af586e171cd3a904b7691573

こんな感じで、precommitにsymlinkさよなら〜〜というスクリプトを噛ませるだけだ。
当然、git rm --cachedしてるので、すでに追跡されていてもバイバイ確定なので、とにかくシンボリックリンク許すまじという人だけ使えばいいと思う。