Skip to content

Changes and diff

See what changed in the repository, filter the list, and open a file's diff without leaving the panel.

View Markdown

The Changes section is the list of what changed in the project repository since the last commit — plus what Git doesn’t track yet and what is in conflict.

Reading the list

The files appear grouped by situation, and the grouping is what matters:

Group What it is
Conflicted The file has unresolved conflict markers; it is the group that blocks the rest
Staged What the next commit will carry
Modified Tracked files with changes that haven’t entered the commit yet
Untracked Files Git doesn’t track yet

Two controls change only the reading:

  • Filter by name — narrows the list to what matches the term. With no result, the panel says that no file has that name, instead of showing an empty list with no explanation.
  • List shape — toggles between List and Tree. In repositories with many files in different folders, the tree groups by directory.

Opening the diff

Each row has its own actions, in the context menu:

  • View the diff — opens the file comparison.
  • Show in Files — takes the file to the file tree, already pointed at.
  • Copy the path — puts the path in your mental terminal, ready to paste into a command.

The diff is reading: opening a file’s comparison does not change the index nor write anything to the project.

Submodules

When what changed is inside a submodule, the row can be expanded to show what changed in there. It is worth knowing the difference: the outer repository can record the submodule’s commit change, but it cannot stage the dirty files inside it. That is why the panel treats those rows as read-only, instead of offering a button that would fail.

Scope and limits

  • The three groups are not the same thing to Git. An untracked file has no previous version to compare against; its diff is the entire content. A conflicted file has a special state, and its handling is different — that is why it appears separately.
  • A deleted file is not inferred. The panel does not guess the content of a file that no longer exists on disk.
  • The list may take a while to reflect an external command. If you changed the repository from the terminal, use Re-read git state in the panel header: the automatic re-read is spaced out on purpose so as not to weigh on large repositories.
  • A file that vanished from disk may appear as an untracked deletion and not as a modification.

Next steps