git-extras is a large collection of really useful utilities for Git repositories.
The software is under active development.
git-extras is free and open source software.
Here’s the commands:
- git alias – define, search and show aliases.
- git archive-file – creates a zip archive of the current git repository
- git authors – populates the file matching authors|contributors -i with the authors of commits, according to the number of commits per author.
- git browse – opens the current git repository website in your default web browser.
- git bulk – adds convenient support for operations that you want to execute on multiple git repositories.
- git brv – pretty listing of branches sorted by the date of their last commit.
- git changelog – generates a changelog from git tags (annotated or lightweight) and commit messages.
- git clear – performs a hard reset and deletes all untracked files from the working directory, including those in .gitignore
- git clear-soft – performs a hard reset and deletes all untracked files from the working directory, excluding those in .gitignore.
- git coauthor – add a co-author to the last commit.
- git commits-since – list commits since date (defaults to “last week”).
- git contrib – output author’s contributions to a project.
- git count – output commit count.
- git cp – copy a file to another one keeping its history and allowing for merge conflicts handling.
- git create-branch – create local branch with options to setup a remote tracking branch in origin and upstream.
- git delete-branch – delete local and remote branch.
- git delete-merged-branches – deletes branches that are listed in git branch –merged
- git delete-submodule – deletes a submodule.
- git delete-tag – delete local and remote tag.
- git delta – lists files that differ from another branch.
- git effort – displays “effort” statistics, currently just the number of commits per file, showing highlighting where the most activity is.
- git extras – the main command.
- git feature – create/Merge the given feature, refactor, bug or chore branch.
- git force-clone – if the clone target directory exists and is a git repository, reset its contents to a clone of the remote.
- git fork – fork the given GitHub repo. It’s similar to the clone command, but forks first.
- git fresh-branch – create empty local branch.
- git gh-pages – sets up the gh-pages branch.
- git graft – merge commits from src-branch into dest-branch.
- git guilt – calculate the change in blame between two revisions.
- git ignore – displays currently ignored patterns in both your global and your local .gitignore files.
- git ignore-io – generate sample gitignore file from gitignore.io.
- git info – show information about the repo.
- git local-commits – list all commits on the local branch that have not yet been sent to origin. Any additional arguments will be passed directly to git log.
- git lock – lock a local file.
- git locked – list local locked files.
- git merge-into – merge src branch into dest, and keep yourself on current branch. If src branch not given, it will merge current one to dest.
- git merge-repo – merges two repository histories.
- git missing – print out which commits are on one branch or the other but not both.
- git mr – checks out a merge request from GitLab.
- git obliterate – completely remove a file from the repository, including past commits and tags.
- git paste – sends commits to a pastebin site using pastebinit.
- git pr – checks out a pull request from GitHub.
- git psykorebase – rebase a branch on top of another using a merge commit and only one conflict handling.
- git pull-request – create pull request via commandline.
- git reauthor – rewrite history to change author’s identity.
- git rebase-patch – given you have a patch that doesn’t apply to the current HEAD, but you know it applied to some commit in the past, git rebase-patch will help you find that commit and do a rebase.
- git release – release commit with the given
and other options - git rename-branch – rename a branch locally, and sync to remote via git push.
- git rename-tag – rename a tag (locally and remotely).
- git rename-remote – rename a git remote regardless of name conflict, and then list current git remotes.
- git repl – run git commands without typing ‘git’.
- git reset-file – reset one file to HEAD or certain commit.
- git root – show the path to root directory of git repo.
- git rscp – copy files from the current working tree to the working directory of a remote repository.
- git scp – copy files from the current working tree to the working directory of a remote repository.
- git sed – run grep as directed but replace the given files with the pattern.
- git setup – set up a git repository (if one doesn’t exist), add all files, and make an initial commit.
- git show-merged-branches – show all branches merged in to current HEAD.
- git show-tree – show the decorated graph view of one liner summarized commits from all branches.
- git show-unmerged-branches – show all branches not merged in to current HEAD.
- git stamp – stamp the last commit message.
- git squash – merge commits from src-branch into the current branch as a single commit.
- git standup – recall what you did or find what someone else did in a given range of time.
- git summary – outputs a repo summary.
- git sync – sync local branch with its remote branch.
- git touch – call touch on the given file, and add it to the current index. One-step creation of new files.
- git undo – remove the latest commit.
- git unlock – unlock a local file filename.
- git utimes – change files modification time to their last commit date.
Website: github.com/tj/git-extras
Support:
Developer: TJ Holowaychuk and various contributors
License: MIT License
Related Software
| Git Workflow Tools | |
|---|---|
| git-extras | Superb collection of tools for Git |
| forgit | Utility for using git interactively |
| wrkflw | Validate and run GitHub Actions workflows locally |
| git-branchless | Branchless workflow for git |
| git-absorb | Super-charging git rebase |
| git-toolbelt | Suite of useful Git commands |
| git-open | Adds a handy git open command to Git. |
| git-town | Automate the creation, synchronization, shipping, and cleanup |
| git-fuzzy | Interactive git with the help of fzf |
| git-recent | Jump between recently used local Git branches |
| git-machete | Robust tool that simplifies your git workflows |
| git-flow-next | Modern implementation of the Git-flow branching model |
| Git Interactive Rebase Tool | Terminal-based sequence editor for interactive rebase |
| git-crecord | Interactively select changes to commit or stage |
| git-xargs | Update across multiple GitHub repositories |
| git-prompt.zsh | Lightweight git prompt for zsh |
| git-imerge | Incremental merge and rebase for Git |
| git revise | Git subcommand and Python library |
| wtp | Enhanced Git worktree management |
| LazyWorktree | Git worktree management for the terminal |
| Hug SCM | The Humane Source Control Management Interface |
| git-smart | Small collection of Git helper commands |
| stax | CLI and TUI for stacked Git branches and PRs |
| git-fixup | Command-line helper for Git users |
| git-autofixup | Git helper that creates fixup commits for topic branches |
| Branchlet | Create and manage Git worktrees |
| git-when-merged | Merge commit finder |
| git-flow | High-level repository operations |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

