Keep it simple. All other ignores should either go in .git/info/excludes or global ignore list. See https://github.com/github/gitignore for more info and examples.