Set User Information
Configure your name and email globally.
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Set for current repository only:
git config user.name "Your Name"
git config user.email "your.email@example.com"
View Configuration
List all configuration settings.
git config --list
Show specific setting:
git config user.name
Show origin of settings:
git config --list --show-origin
Configuration Levels
System-level configuration (all users).
git config --system
Global configuration (current user):
git config --global
Local configuration (current repository):
git config --local
Set Default Editor
Configure default text editor.
git config --global core.editor "vim"
Use VS Code:
git config --global core.editor "code --wait"
Line Ending Configuration
Configure line ending handling (Windows).
git config --global core.autocrlf true
For Linux/Mac:
git config --global core.autocrlf input
Create Aliases
Set up command shortcuts.
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
Complex alias example:
git config --global alias.lg "log --oneline --graph --all"
Default Branch Name
Set default branch name for new repositories.
git config --global init.defaultBranch main
Color Configuration
Enable colored output.
git config --global color.ui auto
Diff and Merge Tools
Set default diff tool.
git config --global diff.tool vimdiff
Set default merge tool:
git config --global merge.tool vimdiff
Credential Helper
Cache credentials for HTTPS.
git config --global credential.helper cache
Store credentials permanently:
git config --global credential.helper store
Set cache timeout (in seconds):
git config --global credential.helper 'cache --timeout=3600'
Remove Configuration
Unset a configuration value.
git config --global --unset user.name
Edit Configuration File
Open configuration file in editor.
git config --global --edit
Useful Aliases
Common productivity-boosting aliases.
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual '!gitk'