Git's Magic Files
8 hours ago
- #configuration
- #git
- #version-control
- Git uses special files like .gitignore, .gitattributes, .lfsconfig, .gitmodules, .mailmap, .git-blame-ignore-revs, and .gitmessage to control behavior.
- .gitignore specifies files git should ignore, with patterns for directories, wildcards, and negations.
- .gitattributes configures file handling, including line endings, binary files, and GitHub Linguist overrides.
- .lfsconfig sets Git LFS configuration, such as endpoint URLs and transfer settings.
- .gitmodules defines submodule configurations, including paths, URLs, and branches.
- .mailmap maps author names and emails to canonical identities for consistent commit attribution.
- .git-blame-ignore-revs lists commits to skip during blame, useful for bulk changes like formatting.
- .gitmessage provides a commit message template, though it requires manual configuration.
- Forge-specific folders (.github/, .gitlab/, etc.) contain platform-specific configurations like CI/CD workflows.
- Other conventions include .gitkeep for empty directories and .editorconfig for editor settings.
- Tools like Docker and version managers use similar dotfiles (.dockerignore, .ruby-version) for configuration.