Changes and diff
See what changed in the repository, filter the list, and open a file's diff without leaving the panel.
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.