Skip to main content
Each repository has its own configuration in .wit/config.

Core Settings

Repository Format

[core]
    repositoryformatversion = 1
The repository format version. wit uses version 1 by default.

File Mode

[core]
    filemode = true
Whether to track file permission changes.
ValueDescription
trueTrack executable bit changes
falseIgnore permission changes
When to disable:
  • Windows systems (no execute bit)
  • Shared folders with permission issues

Bare Repository

[core]
    bare = false
Bare repositories have no working directory (used for servers).

wit-Specific Settings

Hash Algorithm

[wit]
    hashAlgorithm = sha1
ValueDescription
sha1Git-compatible (default) - works with GitHub/GitLab
sha256More secure, but no Git remote compatibility
wit defaults to SHA-1 for full GitHub/GitLab compatibility. SHA-256 is available for wit-to-wit workflows that don’t need Git remotes.

Auto-Stash on Switch

[wit]
    autoStashOnSwitch = true
When enabled:
  • Uncommitted changes are saved when switching branches
  • Restored automatically when switching back

Large File Handling

[wit]
    largeFileThreshold = 2097152
    chunkSize = 2097152
KeyDescription
largeFileThresholdFiles larger than this are chunked (bytes)
chunkSizeSize of each chunk (bytes)
Common values:
SizeBytes
1 MB1048576
2 MB2097152
5 MB5242880
10 MB10485760

User Information

[user]
    name = Your Name
    email = you@example.com
    signingkey = ABC123
KeyDescription
nameYour display name for commits
emailYour email for commits
signingkeyGPG key for signing (optional)

Remote Configuration

[remote "origin"]
    url = git@github.com:user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    pushurl = git@github.com:user/repo.git
KeyDescription
urlRepository URL for fetch/push
fetchRefspec for fetching
pushurlAlternative URL for pushing (optional)

Multiple Remotes

[remote "origin"]
    url = git@github.com:user/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

[remote "upstream"]
    url = git@github.com:original/repo.git
    fetch = +refs/heads/*:refs/remotes/upstream/*

Branch Configuration

[branch "main"]
    remote = origin
    merge = refs/heads/main
    rebase = true

[branch "develop"]
    remote = origin
    merge = refs/heads/develop
KeyDescription
remoteDefault remote for this branch
mergeDefault branch to merge from
rebaseRebase instead of merge on pull

Scope Presets

[scope "frontend"]
    paths = packages/frontend/

[scope "backend"]
    paths = packages/backend/,packages/api/

[scope "docs"]
    paths = docs/,*.md,README*
Use with:
wit scope use frontend

AI Configuration

[ai]
    enabled = true
    model = gpt-4
    autoSuggest = false
KeyDescriptionDefault
enabledEnable AI featurestrue
modelAI model to usegpt-4o
autoSuggestAuto-suggest on commitfalse

Web UI Configuration

[web]
    port = 3847
    openBrowser = true
KeyDescriptionDefault
portWeb UI port3847
openBrowserOpen browser on starttrue

Editing Configuration

Using Commands

# View
wit config --list
wit config user.name

# Set
wit config user.name "New Name"
wit config --global user.email "new@email.com"

# Unset
wit config --unset user.name

# Edit directly
wit config --edit

Manual Editing

Open .wit/config in your editor:
code .wit/config

Example: Complete Configuration

[core]
    repositoryformatversion = 1
    filemode = true
    bare = false
    ignorecase = false

[wit]
    hashAlgorithm = sha1
    largeFileThreshold = 5242880
    autoStashOnSwitch = true
    chunkSize = 2097152

[user]
    name = Alice Developer
    email = alice@company.com

[init]
    defaultBranch = main

[remote "origin"]
    url = git@github.com:company/project.git
    fetch = +refs/heads/*:refs/remotes/origin/*

[remote "upstream"]
    url = git@github.com:opensource/project.git
    fetch = +refs/heads/*:refs/remotes/upstream/*

[branch "main"]
    remote = origin
    merge = refs/heads/main

[branch "develop"]
    remote = origin
    merge = refs/heads/develop

[scope "frontend"]
    paths = packages/frontend/,packages/shared-ui/

[scope "backend"]
    paths = packages/backend/,packages/api/,packages/shared/

[ai]
    enabled = true
    model = gpt-4

[web]
    port = 3847
    openBrowser = true