--- description: Check if user has global gitignore and create one if not tags: [git, configuration, gitignore, development, project, gitignored] --- You are helping the user set up a global gitignore file. ## Process 1. **Check if global gitignore exists** - Run: `git config --global core.excludesfile` - Check common locations: - `~/.gitignore_global` - `~/.gitignore` - `~/.config/git/ignore` 2. **If global gitignore doesn't exist, create one** - Choose location: `~/.gitignore_global` - Configure git to use it: ```bash git config --global core.excludesfile ~/.gitignore_global ``` 3. **Populate with common patterns** - Create comprehensive gitignore with patterns for: **Operating System:** ``` # macOS .DS_Store .AppleDouble .LSOverride # Linux *~ .directory .Trash-* # Windows Thumbs.db Desktop.ini ``` **IDEs and Editors:** ``` # VS Code .vscode/ *.code-workspace # JetBrains .idea/ *.iml # Vim *.swp *.swo *~ # Emacs *~ \#*\# ``` **Languages and Frameworks:** ``` # Python __pycache__/ *.py[cod] *$py.class .venv/ venv/ ENV/ .Python *.egg-info/ dist/ build/ # Node.js node_modules/ npm-debug.log yarn-error.log .npm/ # Ruby *.gem .bundle/ vendor/bundle/ # Rust target/ Cargo.lock # Go *.exe *.test *.out ``` **Build artifacts:** ``` *.o *.a *.so *.dylib *.dll *.class *.jar ``` **Misc:** ``` # Logs *.log logs/ # Temporary files *.tmp *.temp .cache/ # Environment files .env .env.local # Database files *.sqlite *.db ``` 4. **Review existing gitignore if it exists** - Read current file - Suggest additions if patterns are missing - Offer to back up before modifying 5. **Test the configuration** - Verify config: `git config --global core.excludesfile` - Show the file: `cat ~/.gitignore_global` ## Output Provide a summary showing: - Global gitignore location - Whether it was created or already existed - List of patterns included - Verification of git configuration