MCPcopy Index your code
hub / github.com/altsem/gitu

github.com/altsem/gitu @v0.42.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.42.0 ↗ · + Follow
1,128 symbols 3,014 edges 93 files 49 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

It's Gitu! - A Git porcelain outside of Emacs

CI codecov

A terminal user interface for Git. Inspired by Magit.

Features

Gitu aims to implement many of the core features of Magit over time. It should be familiar to any previous Magit users.\ Here's a list of so-far supported features: - Staging/Unstaging (file, hunk, line) - Showing (view commits / open EDITOR at line) - Branching (checkout, checkout new) - Committing (commit, amend, fixup) - Fetching - Logging (current, other) - Pulling / Pushing to/from configured upstream/pushDefault - Rebasing (elsewhere, abort, continue, autosquash, interactive) - Resetting (soft, mixed, hard) - Reverting (commit) - Stashing (save, pop, apply, drop)

Keybinds

Keybinds try mimic Magit, while staying Vim-like. A help-menu can be shown by pressing the h key, or by configuring general.always_show_help.enabled = true

Configuration

The environment variables VISUAL, EDITOR or GIT_EDITOR (checked in this order) dictate which editor Gitu will open. This means that e. g. commit messages will be opened in the GIT_EDITOR by Git, but if the user wishes to do edits to the actual files in a different editor, VISUAL or EDITOR can be set accordingly.

Configuration is also loaded from: - Linux: ~/.config/gitu/config.toml - macOS: ~/.config/gitu/config.toml - Windows: %USERPROFILE%\AppData\Roaming\gitu\config.toml

, refer to the default configuration.

Installing Gitu

Follow the install instructions: Installing Gitu\ Or install from your package manager:

Packaging status

Contributing

PRs are welcome! This may help to get you started: Development & Tooling

Extension points exported contracts — how you extend this code

OpTrait (Interface)
(no doc) [75 implementers]
src/ops/mod.rs
ArgValue (Interface)
(no doc) [2 implementers]
src/menu/arg.rs
ParsedRange (Interface)
(no doc) [1 implementers]
src/gitu_diff.rs

Core symbols most depended-on inside this repo

args
called by 125
src/menu.rs
text
called by 92
src/ui/layout/mod.rs
as_ref
called by 61
src/syntax_parser.rs
next
called by 57
src/picker.rs
iter
called by 50
src/ui/layout/mod.rs
push
called by 47
src/cmd_log.rs
is_empty
called by 46
src/cmd_log.rs
run_cmd
called by 44
src/app.rs

Shape

Function 659
Method 298
Class 145
Enum 23
Interface 3

Languages

Rust100%

Modules by API surface

src/picker.rs71 symbols
src/gitu_diff.rs70 symbols
src/git/parse/status/mod.rs59 symbols
src/tests/mod.rs48 symbols
src/screen/mod.rs41 symbols
src/app.rs41 symbols
src/ui/layout/mod.rs37 symbols
src/tests/stash.rs28 symbols
src/git/mod.rs28 symbols
src/config.rs23 symbols
src/menu/arg.rs21 symbols
src/ops/stash.rs20 symbols

For agents

$ claude mcp add gitu \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact