gitignore implementation