08 — In the project
Local and remote changes
Review, stage, commit and synchronize from the Git pane.
On this page
Read status
Ctrl+Alt+B opens Git. It uses the system Git executable and shows branch, upstream, ahead/behind and changes grouped into staged and local. A file may appear in both groups. No remote means upstream could not be resolved, not necessarily that there are no remotes.
If the open folder belongs to a repository, OEC keeps that scope (including a subfolder). Otherwise it searches for nonignored nested repositories, skipping node_modules, .git and links: one is automatically selected; multiple appear in a list navigated with Enter. With none found or Git unavailable, integration is unavailable.
Nested repositories
With multiple repositories, Esc from local changes returns to the list; Enter selects another. F8/F9, fetch, stage, commit, pull and push operate on the selected repository. Files and diffs use repository-relative paths, while F4 and discard locate them within the open workspace; diff tabs distinguish repositories.
Discovery inspects subdirectories with a detected .git entry; it does not descend into discovered repositories or find repositories that only belong to an external worktree without a .git entry there. It never combines repositories into a single commit.
From a change to a commit
- Save the document. Git and diffs read disk/index, not the pending buffer.
- Select a file and press Enter to review its diff. F4 opens the current file without closing the diff.
- Select a file, folder or change group and press + to stage. In staged, - removes it from the index.
- Navigate to the message field, type and press Enter. Requires a nonempty message and visible staged changes.
Discard changes
- on local changes opens confirmation. Tracked files are restored from the index; untracked files are deleted. Affected dirty tabs block the operation. Targets are captured when opening the confirmation.
A multi-file discard is not transactional: a failure can leave it partially applied. There is no line/hunk staging, specialized conflict resolution or Git undo.
Fetch, pull and push
The autoRefresh watcher observes the opened folder with a debounce even before selecting a nested repository; it does not poll the server and skips internal .git/ events. Fetch/pull/push have no own timeout or cancellation. Operations inherit Git hooks, filters and helpers.
| Action | Behavior |
|---|---|
| F5 | Fetch according to settings and local reading even after fetch failure; refresh active history/branches. |
| F6 | git pull using Git configuration. May modify the entire repository. |
| F7 | git push using external remote and credentials. There is no remote selector in OEC. |
Chapter sources
Links pinned to the reviewed commit; they do not follow main.