Overview
GitHub Desktop provides comprehensive preferences to customize the app’s behavior, appearance, and integrations to match your workflow.Appearance
Choose themes and customize the UI
Git Configuration
Set your Git identity and default settings
Integrations
Connect external editors and terminal apps
Advanced Options
Configure proxy, SSH, and advanced Git settings
Accessing Preferences
- Windows/Linux
- macOS
- File > Options > Preferences
- Or press
Ctrl+,
Accounts
GitHub and GitHub Enterprise
Manage your connected accounts:Sign In
- GitHub.com: Sign in with your GitHub account
- GitHub Enterprise Server: Add your enterprise server URL
- Clone repositories you have access to
- Create pull requests
- View CI/CD status
- Access organization repositories
- Click Sign out next to the account
- Removes OAuth token
- Clears account access
Appearance
Theme Selection
- Light
- Dark
- System
Bright theme optimized for daylight viewing:
- High contrast
- Easy to read in bright environments
- Traditional appearance
Application Theme Implementation
Git Configuration
User Identity
Set your name and email for commits:These settings configure your global Git identity using
git config --global user.name and git config --global user.email.- Right-click repository > Repository Settings
- Override global settings for specific repositories
- Useful for work vs. personal projects
Default Branch Name
Set the name for new repository default branches:main(GitHub standard)master(traditional default)- Custom name of your choice
git config --global init.defaultBranch.
Commit Behavior
Amend Last Commit
Amend Last Commit
Enable quick amending of the most recent commit:
- Shows checkbox in commit message area
- Allows adding files to last commit
- Can edit commit message
GPG Signing
GPG Signing
Sign commits with GPG keys:
- Requires GPG setup on your system
- Configure key in Git config
- Adds verification to commits
Line Ending Conversion
Line Ending Conversion
How Git handles line endings:
- Windows:
core.autocrlf = true - macOS/Linux:
core.autocrlf = input
Integrations
External Editor
Set your preferred code editor: Supported Editors:- Visual Studio Code
- Visual Studio Code - Insiders
- Atom
- Sublime Text
- Visual Studio
- Notepad++
- TextMate (macOS)
- Brackets
- Typora
- SlickEdit
- IntelliJ IDEA
- WebStorm
- PhpStorm
- PyCharm
- RubyMine
- GoLand
- Rider
- Android Studio
- Nova (macOS)
Usage:
- Click Repository > Open in [Editor]
- Or press
Ctrl+Shift+A(Windows/Linux) /Cmd+Shift+A(macOS) - Right-click files > Open in [Editor]
Terminal/Shell
Set your preferred terminal application: Built-in Options:- Windows
- macOS
- Linux
- Command Prompt
- PowerShell
- PowerShell Core
- Git Bash
- Windows Terminal
- Click Repository > Open in Terminal
- Or press
Ctrl+`(Windows/Linux) /Cmd+`(macOS) - Terminal opens in repository directory
Shell Configuration
GitHub Desktop can be configured to use a specific shell:- Repository path automatically set
- Git environment configured
- Immediate access to
gitcommands
Advanced Settings
Proxy Configuration
GitHub Desktop automatically detects system proxy settings, but you can configure manually:
See Proxies for detailed information.
Repository Storage Location
Set default directory for cloned repositories:- Click Change next to “Default clone directory”
- Select a folder on your computer
- Future clones default to this location
- Can be overridden per-clone
Confirmation Dialogs
Control which confirmation dialogs appear:Force Push Warning
Force Push Warning
Show confirmation dialog before force pushing (Recommended)When enabled:
- Warns about force push impact
- Explains history rewriting
- Asks for confirmation
- Force push happens immediately
- Higher risk of mistakes
Discard Changes Warning
Discard Changes Warning
Show confirmation dialog before discarding changesWhen enabled:
- Warns that changes cannot be recovered
- Lists files that will be discarded
- Requires confirmation
- Discard happens immediately
- Easy to lose work accidentally
Large File Warning
Large File Warning
Show warning when committing large filesWhen enabled:
- Warns about files over 50MB
- Suggests using Git LFS
- Asks for confirmation
- Large files committed without warning
- Can bloat repository
Background Operations
Automatic Fetch
Automatic Fetch
Periodically fetch from remotesWhen enabled:
- Fetches every few minutes
- Keeps remote tracking branches updated
- Shows new commits and PRs
- Must manually fetch
- Remote info may be stale
Prune on Fetch
Prune on Fetch
Prune remote branches on fetchWhen enabled:
- Removes remote-tracking branches that no longer exist
- Keeps branch list clean
- Equivalent to
git fetch --prune
- Deleted remote branches remain in list
- Must manually prune
Diff Display
Configure how diffs are shown:- Context lines: Number of unchanged lines around changes
- Whitespace: How to handle whitespace differences
- Show all changes
- Ignore whitespace at end of lines
- Ignore all whitespace changes
- Word diff: Highlight changed words, not just lines
- Syntax highlighting: Enable/disable code highlighting
Experimental Features
Enable beta features: Examples:- New UI components
- Enhanced diff algorithms
- Experimental Git features
- Beta integrations
Preference Storage
Preferences are stored locally:Configuration Files
- Windows
- macOS
- Linux
App State
GitHub Desktop stores:- Repository list
- Window size/position
- Selected repository
- Recent file selections
- UI state (expanded sections, etc.)
Resetting Preferences
To reset all settings:- Quit GitHub Desktop
- Delete the configuration directory
- Restart GitHub Desktop
- Reconfigure preferences
Keyboard Shortcuts
General
| Action | Windows/Linux | macOS |
|---|---|---|
| Preferences | Ctrl+, | Cmd+, |
| Hide window | Ctrl+W | Cmd+W |
| Quit | Ctrl+Q | Cmd+Q |
| Toggle full screen | F11 | Ctrl+Cmd+F |
View Shortcuts
Configure additional keyboard shortcuts in Preferences > Shortcuts (if available in your version).Best Practices
-
Use Consistent Identity
- Same name/email across all repositories
- Helps with commit attribution
- Easier to track contributions
-
Enable Confirmations
- Keep dangerous action warnings on
- Prevents accidental data loss
- Small inconvenience, big safety
-
Choose Tools Wisely
- Pick editor you’re comfortable with
- Configure terminal you know
- Integrations save time
-
Update Regularly
- Keep GitHub Desktop up to date
- New features and fixes
- Better performance
-
Backup Configuration
- Export or document your settings
- Makes reinstall easier
- Share setup across machines
Troubleshooting
Preferences Not Saving
Preferences Not Saving
If preferences don’t persist:
- Check file permissions on config directory
- Ensure disk has space
- Try running as administrator (Windows)
- Check for antivirus interference
Editor Not Detected
Editor Not Detected
If your editor doesn’t appear:
- Reinstall the editor
- Check installation path
- Try restarting GitHub Desktop
- Select “Other” and browse to executable
Theme Not Applying
Theme Not Applying
If theme changes don’t work:
- Restart GitHub Desktop
- Check OS theme settings (for System theme)
- Try a different theme
- Check for app updates
Git Identity Not Working
Git Identity Not Working
If commits show wrong author:
- Check global Git config:
git config --global user.name - Verify email:
git config --global user.email - Check repository-specific config:
git config user.name - Ensure no typos in email address