GitHub - unixorn/git-extra-commands: A collection of git utilities, useful extra git scripts, tutorials and other useful articles. (original) (raw)
git-add-match
Allows you to use expect
to automatically stage hunks matching a search term
git-add-username-remote
Ryan Tomayko's dotfiles
Adds a remote for the current repository for the given GitHub username.
git-age
Kristoffer Gronlund's wiki
A git-blame viewer, written using PyGTK.
git-amend-all
John Wiegley's git scripts
Adds all modified and deleted files, except the new files and adds them to the recent commit by amending it.
git-attic
Leah Neukirchen's blog
Displays a list of deleted files in your repository. The output is designed to be copy and pasted: Pass the second field to git show
to display the file contents, or just select the hash without ^ to see the commit where removal happened.
git-authors
Michael Markert's dotfiles (as git-changes
)
List authors in the repository in descending commit-count order.
git-big-file
Mislav Marohnić's dotfiles
Show files in the repository larger than a threshold size.
git-branch-clean
"branch clean" - rm various copies of a branch (e.g. foo-wip; origin/foo).
git-branch-date
Joe Block jpb@unixorn.net
List branches in commit-date order.
git-branch-diff
Joe Block jpb@unixorn.net
Diffs your current HEAD with the default branch of the origin remote.
git-branch-name
Joe Block jpb@unixorn.net
Prints the current branch name in automation-friendly format.
git-branch-rebaser
Vengada Rangaraju krangaraju@castlighthealth.com
Kicks off an interactive rebase of all the commits on your branch. Including pushed commits, so be careful.
git-branch-status
John Wiegley's git scripts
Colorized status report on all branches in your repository.
git-branches-that-touch
Mislav Marohnić's dotfiles
Shows which branches touch files under a path that are remote, unmerged, have a commit in the last six months and whose name doesn't start with 'enterprise-'.
git-capture-wip
Capture in-progress file changes.
git-change-author
Michael Demmer in jut-io/git-scripts
Change one author/email in the history to another.
git-change-log
John Wiegley's git-scripts
Transform git log
output into a complete Changelog for projects that haven't been maintaining one.
git-changes
Michael Markert's dotfiles
Symlink to git-authors
. List authors in the repository in descending commit-count order.
git-checkout-branches
John Wiegley's git scripts
Checks out all remote branches.
git-checkout-by-date
Lets you checkout several files at once at the version specified by a date.
git-checkout-commit
From the fzf wiki
Uses fzf to checkout a commit, showing the commit diff as preview.
git-checkout-default-branch
I got tired of keeping track of which repositories use main
, master
or something else as default branch
Checks out the default branch of the origin
remote so you don't have to remember which repositories use master
, main
or whatever.
git-checkout-pr
Based on gist.github.com/gnarf/5406589
Check out a PR locally.
git-checkout-preview
From the fzf wiki
Uses fzf to checkout a branch, showing what commits diverge between the branches.
git-checkout-tag
Joe Block jpb@unixorn.net
Check out a tag into a branch named after the tag.
git-children-of
John Wiegley's git-scripts
Shows the children of a given git
commit.
git-churn
Gary Bernhardt's dotfiles
Show which files are getting changed most often in the repository.
git-clone-subset
Rodrigo Silva (MestreLion) linux@rodrigosilva.com
Uses git clone
and git filter-branch
to remove from the clone all files but the ones requested, along with their associated commit history.
git-comma
Leah Neukirchen's blog
Adds and commits a file in one command.
git-commit-browser
From the fzf wiki
Uses fzf to browse commit history.
git-conflicts
Seth Messer's bits and bobs repository
Show files with conflicts.
git-copy-branch-name
Zach Holman's dotfiles
Copy the current branch's name to the clipboard (macOS Only).
git-credit
git-credit-author
Zach Holman's dotfiles
git-current-branch
Joe Block jpb@unixorn.net
Prints the name of the current branch with no odd characters or formatting, mainly useful in automation scripts.
git-current-commit
Joe Block jpb@unixorn.net
Prints the hash of the current commit with no odd characters or formatting, mainly useful in automation scripts.
git-cut-branch
Ryan Tomayko's dotfiles
Create a new branch pointed at HEAD and reset the current branch to the head of its tracking branch.
git-delete-dangling-commits
Clean up dangling commits that are not on any branch.
git-delete-local-merged
From a deleted post by @tekkub
Delete all local branches that have been merged into HEAD.
git-delete-merged-branches
?
Purges all branches that have been merged to a target branch (defaults to branches merged to master).
git-delete-remote-branch
Joe Block jpb@unixorn.net
Delete a branch from a specified remote.
git-delete-squashed-and-merged-branches
Paul Irish's dotfiles
Purges all branches that have been squashed and merged to a target branch (defaults to branches merged to master). Requires pygithub
.
git-delete-tag
Joe Block jpb@unixorn.net
Delete a tag, both locally and from the origin remote.
git-diff-last
Show the last change made to a file in the repository.
git-divergence
Gary Bernhardt's dotfiles
Shows differences between local branch and its tracking branch.
git-edit-conflicts
Joe Block jpb@unixorn.net
Edit the files that are marked as conflicted during a merge/rebase in your $EDITOR/$VISUAL
.
git-fetch-prs
Pretty sure I saw this on slack, but can't recall which one
Get all Pull Request branches from a given remote by refspec.
git-files
Jake Zimmerman's blog
List the files different between the current branch and $REVIEW_BRANCH
, which if unset defaults to the repository's default branch.
git-find-dirty
Matthew McCullough's scripts repository.
git-flush
John Wiegley's git-scripts
Compact your repository by dropping all reflogs, stashes, and other cruft that may be bloating your pack files.
git-force-mtimes
John Wiegley's git-scripts
Sets modification times of all files in the repository their last change date based on git
's log. Useful to avoid too new dates after a checkout confusing make
or rake
.
git-forest
Jan Engelhardt
Prints a text-based tree visualisation of your repository. Requires Git.pm.
git-functionlog
Joe Block jpb@unixorn.net
Allows you to get a git log
of a particular function, not a file.
git-fzf-add
Fuzzy Finding in Bash with fzf
Use fzf to select files to add to git
.
git-fzf-log-browser
Fuzzy Finding in Bash with fzf
Use fzf to browse the repository's git
log.
git-fzf-pickaxe-browser
Fuzzy Finding in Bash with fzf
Use fzf to display a git log
list that has been filtered with pickaxe for a search term.
git-fzf-reflog-browser
Fuzzy Finding in Bash with fzf
Use fzf to browse the repository's git
reflog list that can be filtered by entering a fuzzy term at the prompt. Navigation up and down the hash list will preview the changes of each hash.
git-git
Joe Block jpb@unixorn.net
Typing git git foo
will make git
do a git foo
instead of complaining.
git-github-open
?
Open GitHub file/blob page for FILE on LINE.
git-gitlab-mr
Noel Cower's gist
Open a merge request on GitLab.
git-history-graph
Pretty git
log, single line per commit, with branch graphing.
git-ignored
?
Show files being ignored by git
in the repository.
git-improved-merge
Mislav Marohnić's dotfiles
Sophisticated git merge
with integrated CI check and automatic cleanup.
git-incoming
Michael Markert's dotfiles
Show commits in the tracking branch that are not in the local branch.
git-jump
Cowboy's dotfiles
Replays git
commits by moving forward / backward through a branch's history.
git-latest-tag
Joe Block jpb@unixorn.net
Fetch tags from all remotes and show the most recent tag name.
git-lines
Neil Killeen nkilleen@castlighthealth.com
Gives you a list of author names with the number of lines last updated by that user in files in the current directory tree with the extension specified.
git-log-single-file
Joe Block jpb@unixorn.net
Show the log for a single file.
git-ls-branch-files
Joe Block
List files changed between a specified branch and the current branch.
git-ls-object-refs
Ryan Tomayko's dotfiles
Find references to an object with SHA1 in refs, commits, and trees. All of them.
git-maildiff
Sanjeev Kumar's blogpost
A simple git
command to email diff in color to reviewer/ co-worker.
git-make-gitignore
#commandline-fu on coffeeops
Prints a language-specific .gitignore
file using gitignore.io.
git-maxpack
John Wiegley's git-scripts
Compress a repository's pack files as much as possible.
git-merged-branches
Sergei Boiko's Git housekeeping tutorial: clean-up outdated branches in local and remote repositories article
Lists all branches that have been merged.
git-move-commits
Corey Oordt's git-scripts
git move-commits num-commits correct-branch
moves the last n commits to correct-branch (creating it if necessary).
git-neck
Leah Neukirchen's blog
Show commits from the HEAD until the first branching point. Companion script for git-trail
.
git-nuke
Zach Holman's dotfiles
Nukes a branch locally and on the origin remote.
git-object-deflate
Ryan Tomayko's dotfiles
Deflate an loose object file and write to standard output.
git-oldest-common-ancestor
Lee Dohm's dotfiles
Finds the oldest common ancestor commit between two branches.
git-open-jira
?
If the branch name starts with JIRAPROJECT-NNNN
, will open that issue in jira. Assumes that your JIRA server location is in ~/.jira-server
or in the $JIRA_SERVER
environment variable.
git-origin-head
Don't recall, maybe twitter
Prints the name of the origin remote's default branch. Not every repository uses main
or master
.
git-outgoing
Michael Markert's dotfiles
Show commits that are on the local branch that have not been pushed to the tracking branch.
git-overwritten
Mislav Marohnić's dotfiles
Aggregates git blame
information about original owners of lines changed or removed in the '...' diff.
git-pie-ify
JeeBak Kim's gist
git pie-ify pattern replacement
git-plotrepo
Matthew McCullogh's scripts collection
Uses dot to draw a graph of the repository.
git-pr-fetch
Joe Block jpb@unixorn.net
Fetch PR branches by refspec from one of a repository's remotes.
git-pr-list
Joe Block jpb@unixorn.net
Lists pull requests. Requires gh
.
git-promote
Trevor's Improving My git Workflow blog post (404 now)
Promotes a local topic branch to a remote tracking branch of the same name.
git-prune-branches
Michael Demmer in jut-io/git-scripts
Deletes each fully merged branch after prompting for confirmation, than asks if you want the deleted branches deleted from your upstream remotes.
git-pruneall
Ryan Tomayko's dotfiles
Prune branches from specified remotes, or all remotes when no remote is specified.
git-publish
Michael Markert's dotfiles
git publish remote [remote-branch]
.
git-purge-from-history
David Underhill’s blog
Permanently delete files or folders from your git
repository.
git-pylint
Joe Block jpb@unixorn.net
Runs pylint on any .py files modified or added in the git status
output.
git-rank-contributors
William Morgan wmorgan-git-wt-add@masanjin.net
Rummages through the changelog and orders contributors by the size of the diffs they're responsible for.
git-rebase-authors
Mislav Marohnić's dotfiles
Adds authorship info to interactive git rebase
output.
git-rebase-theirs
Rodrigo Silva (MestreLion) linux@rodrigosilva.com
Resolve rebase conflicts by favoring 'theirs' version.
git-recent
Mine
Shows information about most recent commit on all local branches.
git-recently-checkedout-branches
Mislav Marohnić's dotfiles
Shows timestamp and name of recently checked-out branches in reverse chronological order.
git-ref-recent
Shows the date, branch name, commit hash, and commit subject of branches, from most recently modified to oldest branches.
git-rel
Ryan Tomayko's dotfiles
Shows the relationship between the current branch and ref. With no ref, the current branch's remote tracking branch is used.
git-related
Mislav Marohnić's dotfiles
Show other files that often get changed in commits that touch <file>
.
git-release-tag
Mislav Marohnić's dotfiles
Create a GitHub release for a specified tag. The release notes are automatically populated with the contents of git log since the last tagged version.
git-remote-default-branch
Mine
Shows the default branch for a specified remote, defaults to origin when no remote is specified.
git-remove-conflicts ours or theirs FILES...
John Wiegley's git scripts
Automatically resolves conflicts by applying the changes from current branch (ours) or remote branch (theirs).
git-rename-branches
Rodrigo Silva (MestreLion) linux@rodrigosilva.com
Rename multiple branches that start with a given name.
git-replace-author
Uses git-filter-branch
to rewrite all commits with one name to use another name and email.
git-reset-with-fire
Joe Block jpb@unixorn.net
Hard reset the working directory, then zap any files not known to git
.
git-restore-mtime
Rodrigo Silva (MestreLion) linux@rodrigosilva.com
Change mtime of files based on commit date of last change.
git-reup
Zach Holman's dotfiles
Like git pull
but show a short and sexy log of changes after merging or rebasing.
git-rm-deleted-from-repo
Joe Block jpb@unixorn.net
Removes files you deleted with rm
from the repository for you.
git-root-directory
Joe Block jpb@unixorn.net
Prints the path to the root of the git
repository you're in.
git-run-command-on-revisions
Gary Bernhardt's dotfiles
Runs a given command over a range of git
revisions.
git-semvers
List all the tags in a repo that are semver compliant
git-shamend
Danielle Sucher's git-shamend blog post
Amends your staged changes as a fixup (keeping the pre-existing commit message) to the specified commit, or HEAD if no revision is specified.
git-show-overwritten
Mislav Marohnić's dotfiles
Aggregates git blame
information about the original owners of lines changed or removed in the '...' diff.
git-shrink-repo
Based on gimbo/gimbo-git.zsh
Shrinks your clone of a git
repository.
git-side-by-side
Greg V's vmware-archive/git_scripts
@hefeweizen on the coffeeops slack
git-sp
A. Schwarz's git-sp
"Simple push", single short command to commit, and push. Use -a
flag to add all files to commit.
git-sr
Noel Cower's git-sr
Use fzf
to switch to a different git
ref.
git-stats
Jake Zimmerman's blog
Displays stats for the files different between the current branch and $REVIEW_BRANCH
, which if unset defaults to the repository's default branch.
git-submodule-ls
List all submodules in your project
git-submodule-paths
git-submodule --help
Show path to all submodules in your checkout, with their current commit SHA
git-submodule-rm
Greg V's dotfiles & Pascal Sommer
Allows you to remove a submodule easily with git submodule-rm path/to/submodule
.
git-superpull
Greg V's vmware-archive/git_scripts
Pulls, then does a git submodule init
and git submodule update
.
git-switch-branch
Andrew Steele's dotfiles
Make it easier to switch to a branch by a substring of its name. More useful if you are good about deleting branches which have been merged upstream and if your branch names include unique identifiers like ticket/issue numbers or feature names.
git-tag-and-sign
?
Create and sign a new tag.
git-tag-diff
John Wiegley's git-scripts
Show the differences between local tags and ones on the remote, if any.
git-thanks
Mislav Marohnić's dotfiles
List the contributors to a repository in descending commit order, even if their contribution has been completely replaced.
git-track
Zach Holman's dotfiles
Sets up your branch to track a remote branch. Assumes you mean origin/localbranchname.
git-trail
Leah Neukirchen's blog
Show all branching points in the repository's git
history so you can see how to reach commits in the current branch from other branches.
git-undelete
?
Undeletes a file.
git-undo-push
?
Undoes your last push to branch $1 of origin.
git-undo
Undoes your last commit but keeps the changes in place.
git-unpushed
Zach Holman's dotfiles
Show the diff of everything you haven't pushed to the origin remote yet.
git-unreleased
Mislav Marohnić's dotfiles
Shows git
commits since the last tagged version.
git-up
Zach Holman's dotfiles
Like git pull
but show a short and sexy log of changes after merging or rebasing.
git-upstream-name
Joe Block jpb@unixorn.net
Print the name of the current branch's upstream.
git-upstream-sync
Joe Block jpb@unixorn.net
Fetches upstream/yourforkname and rebases it into your local fork, then pushes to your origin remote.
git-what-the-hell-just-happened
Gary Bernhardt's dotfiles
Show what just happened.
git-when-merged
Michael Haggerty git-when-merged
Find when a commit was merged into one or more branches.
git-where-pr
Mislav Marohnić's dotfiles
Opens the Pull Request on GitHub where a specified commit originated.
git-where
Mislav Marohnić's dotfiles
Shows where a particular commit falls between releases.
git-whoami
Peter Eisentraut
Shows what username & email you have configured for the repository you're in.
git-winner
Garry Dolley https://github.com/up_the_irons/git-winner
Shows what authors have made the most commits, both by number of commits and by number of lines changed.
git-wordiness
Noel Cower
Shows how wordy people's commit messages are. Useful for shaming the folks who commit atrocities like git commit -m fixup
.
git-wtf
William Morgan wmorgan-git-wt-add@masanjin.net
git-wtf
displays the state of your repository in a readable, easy-to-scan format. It's useful for getting a summary of how a branch relates to a remote server, and for wrangling many topic branches.