Configure Git and repository behavior
Preferences › General holds how GitTree drives Git: the Git executable, Pull mode, Auto-fetch interval, rebase options, Long paths and Line endings. Repo-Specific Preferences overrides some of them for one repository, such as its Base branch, auto-fetch, commit template and how it notices file changes.
Works in GitTree Free: every local Git feature, once you are signed in.
On this page
Before you start
- Git 2.39 or later installed (Set up Git).
Where to find it
- Preferences › General; Preferences › Repo-Specific Preferences › your repository.
| Action | macOS | Windows and Linux |
|---|---|---|
| Preferences | ⌘, | Ctrl+, |
Steps
Choose the Git program
Leave Git executable empty to find Git automatically, or give the path of the one to use.
Decide what Pull does
Set Pull mode to Fast-forward only, Fast-forward if possible, else merge or Rebase. A rebase keeps the old tip, and Undo restores it.
Set rebase options
Rebase: stash local changes, Rebase: move stacked branches and Interactive rebase: arrange fixup! commits can follow git config (Inherit) or be set here.
Override for one repository
In Repo-Specific Preferences, set its Base branch, Auto-fetch interval (-1 follows the app), Commit message template or Notice file changes by.
Expected result
GitTree runs the Git you chose, pulls and rebases the way you set, and each repository can differ.
Early warnings
- Warn about conflicts before merging: after a fetch, says which files would conflict with the upstream and base branch. It changes nothing.
- Show overlapping work: marks files you are changing that fetched, unmerged branches also change.
If something goes wrong
Changes made outside GitTree appear late on a network share or in WSL
Set Notice file changes by to Checking every few seconds for that repository.
Questions
Does GitTree change my git config for these?
Only settings that name a git key, such as Long paths (core.longpaths) or Line endings (core.autocrlf), write it, and only when you change them.