# Git Extras

> A collection of extra git subcommands, including git-ignore, git-setup, git-changelog, git-release, git-effort, git-squash and git-pull-request.

Stars: 18.1k · Language: Shell · License: MIT · Categories: Git

- Repository: https://github.com/tj/git-extras
- Page: https://www.trmn.sh/tools/git-extras

## Install

- Homebrew: `brew install git-extras`

## Overview

Git Extras is a collection of additional git subcommands that are invoked as `git <command>`. The repository description lists repo summary, a git repl, changelog population, and author commit percentages among its utilities. The README itself points to a separate Commands page for usage and examples of each command.

The commands named in the README include `git-ignore`, `git-setup`, `git-changelog`, `git-release`, `git-effort`, `git-archive-file`, `git-delete-merged-branches`, `git-delta`, `git-pull-request`, `git-show-merged-branches`, `git-show-unmerged-branches`, and `git-squash`. An introductory screencast covers `git-ignore`, `git-setup`, `git-changelog`, `git-release`, and `git-effort`.

As of version 6.4, the assumed default branch name is `main` instead of `master`. This affects `git archive-file`, `git delete-merged-branches`, `git delta`, `git pull-request`, `git show-merged-branches`, `git show-unmerged-branches`, and `git squash`. To restore `master`, set `git-extras.default-branch` or `init.defaultBranch` to `master`; the former takes precedence, for example `git config git-extras.default-branch master`.

It is aimed at developers who use git on the command line and want helpers for repository setup, release and changelog tasks, branch cleanup, and commit statistics. Installation instructions are on a separate Installation page.

### Installation

```bash
# via Homebrew
brew install git-extras
```

## Alternatives

- [git-secrets](https://www.trmn.sh/tools/git-secrets.md): Prevents committing passwords and sensitive information to git repositories using pattern matching and hooks (Shell, 13.4k stars)
- [forgit](https://www.trmn.sh/tools/forgit.md): Interactive Git command wrapper using fzf for fuzzy selection of files, commits, branches, and more (Shell, 5.1k stars)
- [diff-so-fancy](https://www.trmn.sh/tools/diff-so-fancy.md): Perl script that reformats git diff and unified diff output for readability, with cleaner headers, hunk markers, and stripped +/- symbols. (Perl, 18.1k stars)
- [pre-commit](https://www.trmn.sh/tools/pre-commit.md): Framework for managing and maintaining multi-language pre-commit hooks in Git repositories. (Python, 15.7k stars)
- [git-lfs](https://www.trmn.sh/tools/git-lfs.md): Git extension for managing large files by storing them outside the repository with pointer files (Go, 14.6k stars)

---

Canonical: https://www.trmn.sh/tools/git-extras
