Git

File-scoped commits, diffs against HEAD, blame, history, and AI commit messages — built in.

Bungu treats git as a first-class part of writing in a repo, scoped to the file you’re editing.

Status, always visible

The status bar shows the current branch, an orange dot when the open file differs from HEAD, and ↑N ↓N ahead/behind counts. Folders containing a .git directory get a branch icon in the sidebar, with a repo-wide dirty count.

Commit

⌘⌥K opens the commit sheet. Bungu commits this filegit add -- <path> && git commit — never git add -A, so your half-finished changes elsewhere stay out of the commit. The sheet offers:

  • staged/unstaged hunks with an inline diff,
  • AI-suggested commit messages from the local model (the “Suggest” button),
  • committing onto a new branch,
  • and afterwards: Push Branch and Create Pull Request against the repo’s default branch (PR creation needs the GitHub CLI, gh, installed and authenticated).

Diff, history, blame

  • Diff view (⌘4 or ⌘⇧D) — side-by-side working copy vs HEAD, line-numbered, color-coded, scroll-synced, recomputed live as you type. Diffing against arbitrary branches and commits is supported too.
  • File history (⌘⇧H) — git log --follow for the open file; click a version to view it.
  • Blame gutter (⌘⇧B) — author and date per line, inline.

Pull

Pull runs as a merge with automatic stash handling for your uncommitted changes. If the merge conflicts, Bungu shows the conflicted files and the markers render in the editor for you to resolve.

Conflict markers

Files containing <<<<<<</=======/>>>>>>> markers are detected and surfaced rather than rendered as broken markdown.