---
id: "fluxos.git-preparar-e-commitar"
titulo: "Stage and create a commit"
resumo: "Choose what goes into the next commit, write the message, and record the change in the project repository."
idioma: "en"
tipo: "tutorial"
categoria: "arquivos-git"
aplicavelDesde: "0.0.16"
capabilities: ["git.changes.stage", "git.commit.create"]
estadoEditorial: "aprovado"
nivelEvidencia: "artefato-distribuido"
refFonte: "27574c339b58316408f6be2d62169d59041d07bf"
revisaoFonte: "2026-09-24"
revisor: "mantenedor (v1, 2026-10-03)"
rota: "/docs/en/fluxos/git-preparar-e-commitar/"
fonte: "pt-br/fluxos/git-preparar-e-commitar.md"
caminhoPublico: "docs/publica/en/fluxos/git-preparar-e-commitar.md"
hashFonte: "sha256:0718e77718bb1b87dd0297c97b5daf0d303e054c52b5f901547096171ac5c0a5"
hashDestaPagina: "sha256:7774ebbed1a5ebf0fead660182a902717e39a778fd0ed4719ec5992f94d0974c"
traducaoAssistidaPorIA: true
traducaoDesatualizada: false
corpoRetido: false
---
<!-- traducao-assistida-por-ia: idioma=EN fonte=pt-br/fluxos/git-preparar-e-commitar.md fonteHash=sha256:0718e77718bb1b87dd0297c97b5daf0d303e054c52b5f901547096171ac5c0a5 estado=atual -->

This is the path from work to record: choosing what goes in, writing the message, and committing.

## Before you start

- An open project, with a Git repository.
- No unresolved conflict. With an open conflict, the commit dock is blocked on purpose:
  recording a half-done resolution is worse than recording nothing.
- To use the button that writes the message with the agent, a configured assistant. Without it, the button
  simply doesn't appear.

## 1. Stage files

Each row of the **Changes** section has the stage or unstage action:

- **Stage** — that file's change becomes part of the next commit.
- **Unstage** — undoes the staging of that file, without touching its content.

There are two shortcuts for working in bulk:

1. **Select multiple files** — enters a selection mode; with the selection made, the actions apply to the
   set, and the panel reports how many files are selected.
2. **Stage everything** — acts on the whole group at once (the same menu has the per-group version and the
   version for all eligible files).

What is **not** staged in bulk: rows in unresolved conflict. Staging a conflicted file without
having looked at the resolution erases the conflict record before you review it — the panel leaves that
decision to the individual gesture.

## 2. Write the message

The dock, at the footer of the panel, is where the message lives. It is anchored there on purpose: in the old
model the commit box went up and down with the number of changed files, and the same gesture changed
place.

Two ways to write:

- **Type** the message in the field.
- **Write the message with the agent** — the button inside the field asks an assistant for a summary of the
  changes. While it works, the panel says the agent is writing and offers to stop. If there are no
  changes to summarize, the panel warns instead of returning an empty message.

`Ctrl+Enter` (or `⌘+Enter`) commits without taking your hands off the keyboard.

## 3. Commit

The **Commit** button has a behavior worth knowing: **with nothing staged, it stages all eligible
changes and commits** — the name promises the commit, not two clicks. The button's own text
changes to say which of the two cases is yours: *"Commit what is staged"* or *"Stage all
changes and commit"*.

After success, the message draft is cleared. After a failure, it is **not**: you don't lose
what you wrote.

## Result

- The commit exists in the project repository and appears in the **Commits** section.
- The tree is clean: the files that went in leave the changes list.
- The header updates the count of unpublished commits.

## Cleanup and care

- **An empty message is refused.** "Write a message to commit" is the panel's answer.
- **With nothing to commit**, the panel warns; it does not create an empty commit.
- **Stage "stage everything" carefully.** Staging automatically may include files you
  didn't want in that commit — build output, log, draft. When the commit has a single subject, stage per
  file or per group.
- **A commit is not publishing.** Nothing leaves your machine until you publish the branch.
- **Undoing a commit** has no button in the panel. If you committed by mistake, the path is through the
  project terminal, with the care the operation demands — and, with real users working in the repository,
  prefer a new commit that corrects over rewriting already-published history.

## Next steps

- [Commit history](/docs/en/fluxos/git-historico/)
