Skip to content

Latest commit

 

History

History
112 lines (76 loc) · 4.42 KB

File metadata and controls

112 lines (76 loc) · 4.42 KB

Gitna

Gitna

A local Git workbench that runs in your browser.

npm version CI status Apache-2.0 license

Gitna brings fast local-folder browsing, source control, visual diffs, repository history, and everyday Git operations into one focused interface. It runs on your machine, uses your installed Git when a folder is a repository, and keeps folder data local.

Gitna reviewing, staging, editing, and browsing repository history

Warning

Gitna is in early development. Expect bugs, rough edges, and breaking changes.

Quick start

Install with npm:

npm install -g gitna

Open any local folder:

cd your-folder
gitna

Gitna starts a local server and opens an authenticated session in your default browser. You can also pass a folder explicitly:

gitna /path/to/folder

Folders backed by Git automatically gain source control, history, branches, stashes, tags, and Git operations. Ordinary folders retain Gitna’s Explorer, tabs, editing, search, and file tools.

What you can do

  • Start from Home, reopen recent folders, and switch folders without restarting Gitna
  • Explore huge ordinary folders through lazy directory loading and bounded watching
  • Press Cmd/Ctrl+K to search every indexed file, or type > to run commands from the unified command palette
  • Review staged and unstaged changes with Pierre-powered split or unified diffs
  • Preview PNG, JPEG, WebP, and GIF changes alongside text diffs
  • Browse and edit working-tree files in repository tabs
  • Select two Explorer files with Cmd/Ctrl-click, then right-click and choose Compare Selected
  • Stage and unstage files, folders, or individual hunks
  • Commit and amend while preserving normal Git hook behavior
  • Scroll continuously through a virtualized commit Graph with an exact HEAD-reachable count
  • Browse branches, tags, stashes, and commit history
  • Fetch, pull, push, compare, merge, rebase, cherry-pick, and revert
  • Resolve conflicts with explicit ours, theirs, or combined content

Install

npm

npm install -g gitna

The single npm package downloads the matching native binary from GitHub Releases, verifies its SHA-256 checksum, and caches it locally. Node.js is required only for npm installations.

mise

mise use -g github:roie/gitna

Mise installs the native GitHub Release asset directly; Node.js is not required at runtime.

Direct download

Download the archive for your platform from GitHub Releases, extract it, and place gitna (gitna.exe on Windows) on your PATH.

Supported release targets:

  • macOS Apple silicon (arm64)
  • macOS Intel (x64)
  • Linux x64
  • Linux arm64
  • Windows x64
  • WSL using the Linux binary and your normal Windows browser

Gitna requires an installed git executable and a modern browser.

Local by design

Gitna binds only to a random loopback port. Every process creates a high-entropy capability URL, and mutating requests are protected by Host, Origin, content-type, and size checks.

Repository reads and mutations go through the system Git executable. Gitna does not upload repository data or replace Git's storage, configuration, credentials, or hooks.

See SECURITY.md for the complete security model and vulnerability reporting instructions.

Development

Development setup, validation commands, packaging, and release instructions are documented in CONTRIBUTING.md.

License

Gitna is licensed under Apache-2.0. Bundled dependency notices are available in THIRD_PARTY_NOTICES.md and THIRD_PARTY_LICENSES.txt.