Source Control

Staging & Committing

Review every change before it's committed, at whatever granularity you need — whole files or individual lines.

Staging changes

Hover any file in the Changes group and click the + icon to stage it, or stage everything at once from the group's own +. Staged files move into their own Staged Changes group, ready to commit.

1

Review the diff

Click any changed file to open a side-by-side (or inline, your preference) diff against the last committed version.

2

Stage selectively

Stage a subset of a file's changes by selecting specific lines in the diff and choosing Stage Selected Ranges — useful when a file has both a real fix and an unrelated formatting change you want in separate commits.

3

Write a commit message

Type into the message box at the top of the Source Control view. It remembers drafts per-branch, so switching branches and back doesn't lose an in-progress message.

4

Commit

Press Ctrl+Enter (Cmd+Enter on macOS) or click the checkmark. With nothing staged, committing stages and commits every tracked change instead.

Amending a commit

Use the dropdown next to the commit button (or Git: Commit (Amend) from the Command Palette) to fold your staged changes into the previous commit instead of creating a new one.

Commit message conventions

Gunamaya doesn't enforce a commit message format, but it does help you follow one: the message box shows a subject-line length guide, and if your project has a commit template configured in Git itself (commit.template), it's respected automatically.

Discarding changes

Right-click any file in the Changes group and choose Discard Changes to revert it to its last committed state — a confirmation is shown first since this can't be undone with Gunamaya's own undo stack (Git's reflog is still your safety net at the repository level).