Sero's Git app is a built-in Git Integration for developers working in a Git repository. It gives the agent and the app UI a shared view of repository status, branches, commits, diffs, stashes, and selected Git operations.
Sero is still a source-only OSS alpha. Treat Git Integration as a practical workspace tool, not a replacement for understanding Git. Mutating actions run against the real repository in the active workspace.

Sero currently has more than one version-control surface:
git. It is
Git-native and centered on branches, staging, commits, stashes, remotes,
worktrees, commit history, and diffs.Do not assume actions or wording from one surface apply directly to the other. For example, Git Integration talks about Git branches and staging, while the Explorer guide talks about JJ bookmarks and manual checkpoints. For the shared recovery model across manual checkpoints, chat turn undo, restore checkpoint, and source-control operations, see Checkpoints and Undo.
You can use Git Integration from two main surfaces:
git_manager tool and /git command for asking the
agent to inspect or modify the repository.The /git command is a conversational shortcut. It routes your request toward
use of the git_manager tool; it is not itself a separate Git implementation.
Synthetic examples:
Use disposable repositories when trying unfamiliar actions. For example, create a small throwaway repo with a README before testing commits, branch deletion, stash pop, merge, cherry-pick, or force flags.
The current source-supported Git app layout includes these visible surfaces:
This guide does not claim that every git_manager action has a polished,
first-class visual control. Some actions are primarily agent/tool-driven, and
screenshots plus runtime verification are still needed before publishing precise
step-by-step UI how-to instructions.
The main Git surface is meant for scanning branch, staging, and history context before making a repository-changing decision.

GitHub connection can happen during onboarding or later when a workflow needs repository-host access that is not available from the local Git checkout alone. See Workspace and Chat for the onboarding flow.
Prefer read-only actions when you want the agent to explain repository state without changing files, branches, index state, or remotes.
The git_manager tool supports these read/query actions:
refresh — rescan repository state and update Git app state.status — inspect changed files and index state.log — inspect recent commit history.branches — list local/remote branch information.diff — inspect a file diff; requires file; optional staged selects the
staged or unstaged diff.show_commit — inspect a specific commit; requires a hash.Example prompts:
Read-only actions are safer, but their output can still include private file names, commit messages, paths, and code excerpts. Redact before sharing logs or screenshots.
Mutating actions change the real Git repository, working tree, index, remotes, or worktree setup. Review the request before running it, especially if the agent proposes bulk actions.
The git_manager tool supports these mutating action groups:
stage, unstage.commit, stash, stash_pop, stash_apply.fetch, pull, push.checkout, create_branch,
delete_branch, remove_worktree.merge, cherry_pick.Important parameter patterns:
file may be used for stage and unstage.message is required for commit and optional for stash.branch is required for branch actions and merge/checkout requests.hash is required for show_commit and cherry_pick.worktreePath is required for remove_worktree.stashIndex selects a specific stash entry.all enables bulk stage/unstage, commit auto-stage behavior, and
cherry-pick pre-stash behavior.force enables destructive overrides for some branch/worktree operations.Synthetic examples:
Avoid prompts such as "stage everything and push" unless you have already reviewed the diff and know the target remote/branch.
When a workspace has no remote origin, Sero can prompt you to either create a new GitHub repository or connect an existing repository URL as the origin. Treat this as a repository-changing setup step: confirm the target account, organization, visibility, and remote URL before continuing.

If you create a new GitHub repository from Sero, review the generated repository name, optional description, and visibility before creating it.

After a remote is configured, Sero can show the resolved owner/repository and URL so you can confirm which remote the workspace will use.

Git Integration includes guardrails, but guardrails are not a guarantee that an action is risk-free.
Known source-supported protections include:
force is used.all=true is set. With
all=true, the operation can stash uncommitted and untracked changes before
cherry-picking; you may need to inspect, apply, or pop that stash afterward.all=true auto-stages all changes before committing.push --set-upstream when upstream is missing.Use extra care with force and all. They are convenient for disposable test
repos, but they can hide important review steps in a real project. Force delete
and force worktree removal can be destructive.
Merge and cherry-pick conflicts may require normal Git conflict resolution. Git Manager can report conflict guidance, but you may still need to resolve files, continue, abort, or inspect state from the command line in the same workspace runtime.
If an operation fails:
git status before trying another mutating action.Git Integration stores workspace-local app state at:
That state is used by the Git app and agent bridge to keep a shared view of the repository. Missing state falls back to an empty/default state. Malformed state may need repair or removal.
Git Integration also adds an ignore rule for the state folder so the app state does not appear as an untracked change in the repository:
Treat this state as local workspace metadata. It can include branch names, file paths, commit metadata, status summaries, and timestamps.
Git Integration is not the same thing as Sero's checkpoint/turn-undo system. Manual checkpoints and chat turn undo restore workspace files through Sero's checkpoint layer; Git operations modify the real repository. Use Checkpoints and Undo as the canonical recovery matrix before mixing these tools.
Practical habits:
all=true, force=true, stash pop/apply, branch deletion,
worktree removal, push, merge, and cherry-pick.status, log, branches, diff, and show_commit when
asking the agent to explain repository state.Confirm the active workspace is inside a Git repository and refresh the Git app. If you are in the wrong workspace or outside a repo, Git Integration will not have normal branch/status data to show.
Run a refresh from the Git app or ask git_manager to refresh. Git Integration's
view is file-backed state, so command-line changes may need a refresh before the
UI reflects them.
Check whether the branch is current, default, or checked out in another worktree.
For worktrees, check whether the path is the main worktree, dirty, or locked.
Avoid force unless you understand what Git will remove.
Resolve conflicts with normal Git tools in the same workspace runtime. After resolving, continue or abort the operation as Git instructs, then refresh Git Manager.
Inspect the current branch and upstream before pushing. If no upstream exists, push may set one automatically. Verify remotes and branch names in a disposable repo before relying on this behavior in a real project.
The git_manager tool exposes more actions than the obvious visual buttons. If
you do not see a polished UI control for an action, use a cautious agent prompt
or the Git CLI, and prefer a disposable repository until the workflow is runtime
verified.