xit merge refs/remotes/<remote>/<branch> (choose <branch> by inspecting refs or xit log --cli after fetch)
Push:
xit push <remote> <branch>
Guardrails
Require explicit user confirmation before running: xit rm <path> (deletes file), xit restore <path> / xit reset-dir <ref-or-oid> (discard local changes), or xit push ... -f / xit push <remote> :<branch> (force push / delete remote branch).
Prefer xit untrack <path> when the user wants to stop tracking but keep the file.
Do not run git inside a .xit repo unless the user explicitly requests git.
If a command seems missing
Check xit --help and xit <cmd> --help.
If it isn’t available, explain the limitation and ask for direction.
Notes
Patch-based merge controls: xit patch on|off|all.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: tkersey-dotfiles-xit3description: Xit (xit)4---56# Xit (xit)78## Rule (when to trigger)9Use `xit` instead of `git` when either is true:10- A `.xit/` directory exists in this repo (including in a parent directory).11- The user explicitly asks for xit (e.g. “use xit”, “.xit repo”, “xit status”).1213If the repo is not a xit repo and the user didn’t ask for xit, do not force this skill.1415## Non-interactive defaults16- Never run bare `xit` (it launches the TUI).17- Always use `--cli` for `status`, `diff`, `diff-added`, and `log` (their default is TUI).18- Avoid TUI entrypoints (e.g. `xit config`); use `xit config list|add|rm ...` instead.19- Prefer `--cli` whenever it’s available; check `xit <cmd> --help` if unsure.2021## Preflight221. Confirm `xit` is available: `command -v xit`.23 - If missing, ask the user to install/provide `xit`.24 - If they decline, do not attempt to “fake it” with `git`; ask how they want to proceed.252. Confirm you’re in a xit repo:26 - Prefer: `xit status --cli` (it should discover `.xit/` from subdirectories).2728## Top mapping (git-like intent → xit)29| Intent | xit | Notes |30| --- | --- | --- |31| status | `xit status --cli` | Text output for agents. |32| diff (working tree) | `xit diff --cli` | Changes not added to index. |33| diff --cached | `xit diff-added --cli` | Index vs last commit. |34| add / stage | `xit add <path>` | Stage file contents. |35| unstage | `xit unadd <path>` | Like `git reset HEAD <path>`. |36| restore (work dir) | `xit restore <path>` | Discard local changes for a path. |37| rm --cached | `xit untrack <path>` | Stop tracking but keep the file. |38| rm | `xit rm <path>` | Stop tracking and delete the file. |39| commit | `xit commit -m "msg"` | Use a quoted message. |40| log | `xit log --cli` | Text output for agents. |41| branch list / create / delete | `xit branch list` / `xit branch add <name>` / `xit branch rm <name>` | |42| switch / checkout | `xit switch <name-or-oid>` | Updates index + working dir. |43| merge | `xit merge <branch-or-oid>` | Patch-based merge by default. |44| cherry-pick | `xit cherry-pick <oid>` | Apply an existing commit. |4546For a more complete mapping and workflows, see `references/cli.md`.4748## Common workflows4950### Inspect changes51- `xit status --cli`52- `xit diff --cli`53- `xit diff-added --cli`5455### Commit cycle56- `xit status --cli`57- `xit diff --cli`58- `xit add <paths...>`59- `xit diff-added --cli`60- `xit commit -m "<message>"`6162### Merge / cherry-pick (conflicts)63- Start: `xit merge <branch-or-oid>` or `xit cherry-pick <oid>`.64- Inspect: `xit status --cli` and `xit diff --cli`.65- If conflicts:66 - Resolve conflicts in the working tree.67 - Stage resolutions: `xit add <resolved-paths...>` then `xit diff-added --cli`.68 - Continue: `xit merge --continue` or `xit cherry-pick --continue`.69- To abandon the operation: `xit merge --abort` or `xit cherry-pick --abort`.7071### Reset semantics (git reset equivalents)72- Move branch pointer, index only: `xit reset <ref-or-oid>` (like `git reset --mixed`).73- Move branch pointer + working dir: `xit reset-dir <ref-or-oid>` (like `git reset --hard`).74- Move branch pointer only: `xit reset-add <ref-or-oid>` (like `git reset --soft`).7576### Remotes (pull is not implemented)77- Manage remotes: `xit remote add|rm|list ...`78- Pull equivalent:79 - `xit fetch <remote>`80 - `xit merge refs/remotes/<remote>/<branch>` (choose `<branch>` by inspecting refs or `xit log --cli` after fetch)81- Push:82 - `xit push <remote> <branch>`8384## Guardrails85- **Require explicit user confirmation before running**: `xit rm <path>` (deletes file), `xit restore <path>` / `xit reset-dir <ref-or-oid>` (discard local changes), or `xit push ... -f` / `xit push <remote> :<branch>` (force push / delete remote branch).86- Prefer `xit untrack <path>` when the user wants to stop tracking but keep the file.87- Do not run `git` inside a `.xit` repo unless the user explicitly requests git.8889## If a command seems missing90- Check `xit --help` and `xit <cmd> --help`.91- If it isn’t available, explain the limitation and ask for direction.9293## Notes94- Patch-based merge controls: `xit patch on|off|all`.9596---97> Converted and distributed by [TomeVault](https://tomevault.io/claim/tkersey) — claim your Tome and manage your conversions.98<!-- tomevault:4.0:skill_md:2026-04-11 -->
Run npx skillmds@latest add tomevault-io/tkersey-dotfiles-xit in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Xit (xit) It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.