Skip to main content
Documentation
CLI Reference

CLI Reference

Complete reference for all 60+ Dits commands covering core Git operations, creative workflows, enterprise features, and advanced version control for large binary assets.

Global Options

These options can be used with any command:

-v, --verbose       Increase output verbosity (use -vv for debug)
-q, --quiet         Suppress non-essential output
--no-color          Disable colored output
--json              Output in JSON format (for scripting)
-C <path>           Run as if dits was started in <path>
--config <key=val>  Override config value for this command
-h, --help          Show help for command
--version           Show dits version

Command Categories

Commands are organized into logical categories. Click on a category to see detailed documentation for each command.

Quick Reference Table

All commands at a glance. Use the category pages above for detailed documentation with examples and options.

CommandDescriptionCategoryStatus
initInitialize a new repositoryRepositorystable
cloneClone a repository (networked — roadmap, prints a placeholder)Repositoryroadmap
remoteManage remote repositories (networked — roadmap)Repositoryroadmap
statusShow working tree statusRepositorystable
addAdd files to staging areaFilesstable
restoreRestore working tree filesFilesstable
diffShow changes between commitsFilesstable
commitRecord changes to the repositoryHistorystable
logShow commit historyHistorystable
showShow various types of objectsHistorystable
tagCreate, list, or delete tagsHistorystable
branchList, create, or delete branchesBranchesstable
switchSwitch to a branchBranchesstable
checkoutSwitch branches or restore filesBranchesstable
mergeMerge branchesBranchesstable
stashStash changes temporarilyBranchesstable
resetReset HEAD to a specific stateBranchesstable
rebaseRebase commitsAdvanced Gitstable
cherry-pickApply specific commitsAdvanced Gitstable
bisectBinary search for bugsAdvanced Gitstable
reflogShow reference logsAdvanced Gitstable
blameShow authorship by lineAdvanced Gitstable
showShow various types of objectsAdvanced Gitstable
grepSearch repository contentAdvanced Gitstable
worktreeManage multiple worktreesAdvanced Gitstable
sparse-checkoutCheck out only specified pathsAdvanced Gitstable
hooksManage Git hooksAdvanced Gitstable
archiveCreate archivesAdvanced Gitstable
describeDescribe commits with tagsAdvanced Gitstable
shortlogSummarize git log outputAdvanced Gitstable
maintenanceRun maintenance tasksAdvanced Gitstable
completionsGenerate shell completionsAdvanced Gitstable
pushPush changes to remote (networked — roadmap, prints a placeholder and transfers no data)Remotesroadmap
pullFetch and integrate changes (networked — roadmap, prints a placeholder and transfers no data)Remotesroadmap
fetchDownload objects and refs (networked — roadmap, prints a placeholder and transfers no data)Remotesroadmap
syncBi-directional sync (networked — roadmap, prints a placeholder and transfers no data)Remotesroadmap
lockLock files for exclusive editingLocksstable
unlockRelease file locksLocksstable
locksList active locksLocksstable
mountMount repository as VFSVFSstable
unmountUnmount virtual filesystemVFSstable
cache-statsShow VFS cache statisticsVFSstable
inspectInspect MP4/MOV structureVideostable
inspect-fileInspect file dedup statsVideostable
segmentSegment video into chunksVideostable
assembleReassemble segmented videoVideostable
roundtripTest MP4 deconstruct/reconstructVideostable
video-initInitialize video timeline projectVideostable
video-add-clipAdd clip to video timelineVideostable
video-showShow a video timelineVideostable
video-listList all video projectsVideostable
proxy-generateGenerate proxy files for videosProxiesstable
proxy-statusShow proxy generation statusProxiesstable
proxy-listList all generated proxiesProxiesstable
proxy-deleteDelete generated proxiesProxiesstable
meta-scanScan and extract file metadataMetadatastable
meta-showShow metadata for a fileMetadatastable
meta-listList all stored metadataMetadatastable
dep-checkCheck project file dependenciesDependenciesstable
dep-graphShow dependency graphDependenciesstable
dep-listList all project filesDependenciesstable
freeze-initInitialize lifecycle trackingStoragestable
freeze-statusShow storage tier statusStoragestable
freezeMove chunks to colder storageStoragestable
thawRestore chunks from cold storageStoragestable
freeze-policySet or view lifecycle policyStoragestable
encrypt-initInitialize repository encryptionEncryptionstable
encrypt-statusShow encryption statusEncryptionstable
loginLogin to unlock encryption keysEncryptionstable
logoutLogout and clear cached keysEncryptionstable
change-passwordChange encryption passwordEncryptionstable
auditShow audit logAuditstable
audit-statsShow audit statisticsAuditstable
audit-exportExport audit log to JSONAuditstable
gcRun garbage collectionMaintenancestable
fsckVerify repository integrityMaintenancestable
repo-statsShow repository statisticsMaintenancestable
configGet and set configurationMaintenancestable
telemetry enableEnable telemetry data collectionTelemetrystable
telemetry disableDisable telemetry data collectionTelemetrystable
telemetry statusShow current telemetry settingsTelemetrystable

Environment Variables

Dits behavior can be customized through environment variables. These are useful for scripting, CI/CD pipelines, and advanced configuration.

VariableDescriptionExample
DITS_DIROverride .dits directory location/custom/path/.dits
DITS_WORK_TREEOverride working tree location/path/to/worktree
DITS_CACHE_DIROverride cache directory~/.cache/dits
DITS_CONFIG_GLOBALOverride global config path~/.config/dits/config
DITS_EDITOREditor for commit messagesvim
DITS_PAGERPager for outputless -R
DITS_TOKENAuthentication token for remotesdits_xxxxx
DITS_SERVERDefault server URLhttps://dits.example.com
DITS_DEBUGEnable debug output1
DITS_TRACEEnable trace logging1

Exit Codes

Dits uses standardized exit codes for scripting and automation. These codes help identify what type of error occurred.

CodeMeaningExample Scenario
0SuccessCommand completed successfully
1General errorUnspecified failure
2Command line usage errorInvalid arguments or options
3Authentication errorInvalid credentials or expired token
4Network errorConnection failed or timed out
5Repository errorNot a dits repository or corrupt data
6Lock conflictFile is locked by another user
7Merge conflictConflicting changes need resolution
128+Fatal errorSignal number + 128 (e.g., SIGKILL = 137)

Common Workflows

Initial Setup

# Configure your identity
dits config --global user.name "Your Name"
dits config --global user.email "you@example.com"

# Clone a repository
dits clone https://dits.example.com/team/project
cd project

# Or initialize a new one
dits init my-new-project
cd my-new-project

Daily Workflow

# Start day: get latest changes
dits pull

# Check what's changed
dits status

# Lock file before editing (for binary files)
dits lock footage/scene01.mov

# Work on your files...

# Stage and commit changes
dits add footage/scene01.mov
dits commit -m "Color grade scene 1"

# Push changes to remote
dits push

# Unlock when done
dits unlock footage/scene01.mov

Using Virtual Filesystem

# Mount repository as virtual drive
dits mount /mnt/project

# Files appear instantly, hydrate on-demand
ls /mnt/project/footage/

# Open files directly in NLE (streams on demand)
# Edit as normal - no full download required

# When done
dits unmount /mnt/project

Working with Video

# Inspect video structure
dits inspect footage/hero.mov

# Check deduplication stats
dits inspect-file footage/hero.mov

# Generate proxy files for offline editing
dits proxy-generate --resolution 1080p footage/

# Check proxy status
dits proxy-status

Related Topics