Improvements:
* `.terraform` directories could be created in any subdirectory when user runs `terraform init`.
* Quite an interesting variations of`.tfstate` files are created by Terraform such as `.*.tfstate.d` or `.*.tfstate.lock.info`. It's best not to name any file with `*.tfstate.*` pattern.
* `*.tfvars` files often contain private data and not supposed to be committed.