# wfxr/forgit

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/wfxr-forgit).**

5,025 stars · 160 forks · Shell · MIT

## Links

- GitHub: https://github.com/wfxr/forgit
- awesome-repositories: https://awesome-repositories.com/repository/wfxr-forgit.md

## Description

forgit is a shell-based interactive CLI wrapper that uses a fuzzy finder to transform Git output into selection menus. It functions as a workflow accelerator and history browser, replacing manual command entry with searchable interfaces for version control operations.

The tool provides specialized managers for Git worktrees and an interactive history browser for visualizing commit logs, reflogs, and blame data. It differentiates itself by wrapping native Git subcommands in selection logic, allowing users to pick targets before executing final operations.

Its capabilities cover interactive file staging, branch management, and guided rebase operations such as cherry-picks and commit fixups. It also includes tools for interactive change restoration, stash management, and the generation of ignore and attribute files.

The project supports native Git subcommand integration via aliases and provides shell tab completion scripts. Configuration for command behavior, keyboard shortcuts, and output pagers is handled through system environment variables.

## Tags

### Development Tools & Productivity

- [Fzf-Based Git Interfaces](https://awesome-repositories.com/f/development-tools-productivity/fzf-based-git-interfaces.md) — Provides a command-line interface utilizing fzf to create interactive menus for Git operations.
- [Git Workflow Utilities](https://awesome-repositories.com/f/development-tools-productivity/git-workflow-utilities.md) — Offers interactive pickers for common local Git operations like staging files and switching branches.
- [Git History Navigation](https://awesome-repositories.com/f/development-tools-productivity/project-history-navigation/git-history-navigation.md) — Provides an interactive interface for navigating through Git commit logs, reflogs, and blame data.
- [Git Metadata Search](https://awesome-repositories.com/f/development-tools-productivity/project-history-navigation/git-metadata-search.md) — Provides a fuzzy-search interface to browse and locate specific points in commit logs, reflogs, and blames.
- [Command Wrapping](https://awesome-repositories.com/f/development-tools-productivity/shell-command-runners/command-wrapping.md) — Implements logic to wrap native git subcommands in interactive selection menus before execution.
- [Interactive Output Pickers](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/interactive-output-pickers.md) — Transforms Git command output into selectable lists to execute operations without typing full command strings. ([source](https://github.com/wfxr/forgit#readme))
- [Interactive History Browsers](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/history-analysis-visualization/commit-graph-visualizers/interactive-history-editing/interactive-history-browsers.md) — Ships an interactive browser for visualizing commit logs and reflogs with customizable formatting. ([source](https://github.com/wfxr/forgit/blob/main/README.md))
- [Branch Management](https://awesome-repositories.com/f/development-tools-productivity/branch-management.md) — Facilitates branch creation, deletion, and switching through a fuzzy-searchable interface. ([source](https://github.com/wfxr/forgit#readme))
- [Alias Configurations](https://awesome-repositories.com/f/development-tools-productivity/command-line-configuration/alias-configurations.md) — Supports defining short keyboard shortcuts for interactive operations via shell environment variables. ([source](https://github.com/wfxr/forgit#readme))
- [Interactive Diff Viewers](https://awesome-repositories.com/f/development-tools-productivity/git-object-inspection/interactive-diff-viewers.md) — Provides an interactive viewer to browse file changes and diffs to review modifications. ([source](https://github.com/wfxr/forgit#readme))
- [Subcommand Integrations](https://awesome-repositories.com/f/development-tools-productivity/git-repository-integrators/git-workflow-integrations/subcommand-integrations.md) — Installs interactive workflows as native git aliases to trigger selection logic directly from the git binary. ([source](https://github.com/wfxr/forgit#readme))
- [Command Configurations](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/argument-configuration-management/command-configurations.md) — Allows customization of arguments, search options, and pager settings using environment variables. ([source](https://github.com/wfxr/forgit#readme))
- [Git Worktree Management](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/git-utilities/git-worktree-management.md) — Provides an interactive interface for creating and switching between multiple Git worktree directories.
- [Rebase Operations](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/git-utilities/rebase-operations.md) — Implements a guided interface for executing cherry-picks, interactive rebases, and commit fixups. ([source](https://github.com/wfxr/forgit#readme))
- [Interactive Staging Interfaces](https://awesome-repositories.com/f/development-tools-productivity/version-control-repository-tools/version-control-managers/repository-utilities/working-directory-controllers/interactive-staging-interfaces.md) — Allows users to interactively choose specific files or changes to add to the Git index. ([source](https://github.com/wfxr/forgit#readme))
- [Work Stashing](https://awesome-repositories.com/f/development-tools-productivity/work-stashing.md) — Provides a searchable menu for viewing and interacting with Git stashed changes and reference logs. ([source](https://github.com/wfxr/forgit#readme))

### DevOps & Infrastructure

- [Git Wrappers](https://awesome-repositories.com/f/devops-infrastructure/git-command-execution/git-wrappers.md) — Wraps native Git subcommands in fuzzy-searchable selection menus to augment standard version control operations.
- [Git Command Execution](https://awesome-repositories.com/f/devops-infrastructure/git-command-execution.md) — Executes version control operations through an interactive menu to eliminate manual command entry. ([source](https://github.com/wfxr/forgit#readme))
- [Interactive Command Pickers](https://awesome-repositories.com/f/devops-infrastructure/version-control-management/version-control-utilities/git-workflow-helpers/interactive-command-pickers.md) — Accelerates common git actions like switching branches or adding files via an interactive selection menu.

### Data & Databases

- [Shell Command Pipelines](https://awesome-repositories.com/f/data-databases/shell-command-pipelines.md) — Chains git commands and system utilities through standard Unix shell pipes to process version control data.

### Software Engineering & Architecture

- [Subprocess Command Execution](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-command-execution/subprocess-command-execution.md) — Launches native git binaries as subprocesses and captures their output to drive the interactive selection logic.
- [Environment Variable-Based Configuration](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/environment-variable-management/environment-variables/environment-variable-based-configuration.md) — Uses system environment variables to configure tool behavior and visual layouts.

### Operating Systems & Systems Programming

- [Pager and Finder Configurations](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-pagers/output-pagers/pager-and-finder-configurations.md) — Enables the specification of external programs and preview windows to paginate diffs and logs. ([source](https://github.com/wfxr/forgit#readme))

### System Administration & Monitoring

- [Custom Pager Integrations](https://awesome-repositories.com/f/system-administration-monitoring/custom-pager-integrations.md) — Integrates with external system pagers to handle the display of large logs and diffs in the terminal.

### Part of an Awesome List

- [Command Line Helpers](https://awesome-repositories.com/f/awesome-lists/devtools/command-line-helpers.md) — Fuzzy-finder utility for common git operations.
- [Developer Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/developer-utilities.md) — Git utility using fuzzy finder.
