Branch and History Editing
Work with the repository's local commit graph using only the options accepted by the current alpha.
| Command | Current behavior | Usage |
|---|---|---|
| branch | List, create, or delete a local branch | dits branch [NAME] [-d] |
| switch | Switch to an existing local branch | dits switch <BRANCH> |
| checkout | Check out a local commit or branch | dits checkout <TARGET> |
| merge | Merge one local branch into the current branch | dits merge <BRANCH> [-m <MESSAGE>] |
| rebase | Reapply local commits on another base | dits rebase [UPSTREAM] [OPTIONS] |
| cherry-pick | Apply one or more local commits | dits cherry-pick <COMMIT>... [--no-commit] |
| tag | List, create, or delete local tags | dits tag [NAME] [OPTIONS] |
dits branch
With no name, branch lists local branches. With a name it creates a branch at the current commit; --delete removes the named local branch. Rename, copy, force-delete, merged filtering, and remote-listing flags are not accepted by this command.
dits branch
dits branch feature/color-pass
dits branch --delete feature/color-passSwitch and checkout
switch accepts exactly one existing branch name. checkout accepts a commit or branch target and reconstructs the selected state. The optional checkout mode is full by default; proxy mode belongs to the experimental media path.
dits switch feature/color-pass
dits checkout main
dits checkout <commit-id>
# Experimental proxy checkout path
dits checkout main --mode proxydits merge
Merges one named local branch into the current branch. The only command option is an optional merge-commit message.
dits merge feature/color-pass
dits merge feature/color-pass --message "Merge color pass"dits status after a conflict and keep an independent backup. The current restore command does not provide complete merge-conflict resolution for every path.dits rebase
Rebase accepts an optional upstream plus --onto, --continue, --abort, or --skip. Interactive rebase is not implemented.
dits rebase main
dits rebase main --onto <commit-id>
dits rebase --continue
dits rebase --skip
dits rebase --abortdits cherry-pick
dits cherry-pick <commit-id>
dits cherry-pick <first-commit> <second-commit>
dits cherry-pick --no-commit <commit-id>dits tag
With no name, tag lists local tags. Create a tag by name, optionally selecting a commit with --commit. Delete with--delete. Listing can be sorted by name, created, or version; because current tags do not store creation timestamps, created presently falls back to name order. Annotated tags and tag pushing are not current features.
dits tag
dits tag review-ready
dits tag review-ready --commit <commit-id>
dits tag --sort created
dits tag review-ready --deleteUse dits <command> --help for parser-authoritative syntax. See history inspection and the disabled remote status for the adjacent workflows.