Git Alias is a collection of git version control alias settings that can help you work faster and better. Git Alias provides short aliases such as s
for status, command aliases such as chart
and churn
, lookup aliases such as whois
and whatis
, workflow aliases such as topic-begin
for feature branch development, and more.
You can use Git Alias various ways:
-
Download the Git Alias file here: gitalias.txt.
-
Install Git Alias via a variety of ways: install guide.
-
Customize Git Alias aliases as you wish: customize guide.
You can follow us on GitHub:
-
Git Alias account: https://github.com/gitalias
-
Git Alias repository: https://github.com/gitalias/gitalias
Short aliases are for frequent commands and options:
git add:
git branch:
- git b = branch
- git bm = branch --merged
- git bnm = branch --no-merged
- git bed = branch --edit-description
- git bsd = branch --show-description (polyfill)
git commit:
- git c = commit
- git ca = commit --amend
- git cam = commit --amend --message
- git cane = commit --amend --no-edit
- git ci = commit --interactive
- git cm = commit --message
git checkout:
git cherry-pick:
- git cp = cherry-pick
- git cpa = cherry-pick --abort
- git cpc = cherry-pick --continue
- git cpn = cherry-pick -n (--no-commit)
- git cpnx = cherry-pick -n -x (--no-commit and with a message)
git diff:
- git d = diff
- git dd = diff with our preferred settings
- git dc = diff --cached
- git ds = diff --staged
- git dwd = diff --word-diff
git fetch:
- git f = fetch
git grep:
git log:
- git l = log
- git ll = log list with our preferred short settings
- git lll = log list with our preferred long settings
- git lg = log --graph
- git lo = log --oneline
- git lor = log --oneline --reverse
- git lp = log --patch
- git lfp = log --first-parent
- git lto = log --topo-order
git ls-files:
- git ls = ls-files
- git lsd = ls-files --debug
- git lsfn = ls-files --full-name
- git lsio = ls-files --ignored --others --exclude-standard
git merge:
- git m = merge
- git ma = merge --abort
- git mc = merge --continue
- git mncnf = merge --no-commit --no-ff
git pull:
git rebase:
- git rb = rebase
- git rba = rebase --abort
- git rbc = rebase --continue
- git rbs = rebase --skip
- git rbi = rebase --interactive
- git rbiu = rebase --interactive @{upstream}
git reflog:
- git rl = reflog
git remote:
git revert:
git show-branch:
git submodule:
- git sm = submodule
- git smi = submodule init
- git sma = submodule add
- git sms = submodule sync
- git smu = submodule update
- git smui = submodule update --init
- git smuir = submodule update --init --recursive
git status:
git whatchanged:
- git w = whatchanged
Recommended helpers:
- git initer - Initialize a repo using our recommended way i.e. with an empty rebaseable commit
- git cloner - Clone a repo using our recommended way i.e. recursive include of submodules
- git pruner - Prune a repo using our recommended way i.e. prune everything unreachable now
- git repacker - Repack a repo our recommended way i.e. as Linus Torvalds describes
- git optimizer - Optimize a repo using our recommended way i.e. by pruning and repacking
Quick highlights:
- git chart - Show highlights chart of activity per author
- git churn - Show log of files that have many changes
- git summary - Show a summary of overview metrics
Branch names:
- git default-branch - Show the default branch name
- git current-branch - Show the current branch name
- git upstream-branch - Show the upstream branch name
- git topic-base-branch - Show the topic base branch name
Branch commits:
- git branch-commit-first - Show a branch's first commit hash (or hashes)
- git branch-commit-last - Show a branch's last commit hash (or hashes)
- git branch-commit-prev - Show a branch's previous commit hash (or hashes)
- git branch-commit-next - Show a branch's next commit hash (or hashes)
Friendly plurals:
- git aliases - List aliases
- git branches - List branches
- git tags - List tags
- git stashes - List stashes
Undo:
- git uncommit = reset --soft HEAD~1
- git unadd = reset HEAD
Logging & reporting:
Lookups:
- git whois - Try to figure out an author's information
- git whatis - Try to figure out an object's information
Commit details:
- git commit-parents - Show the commit's parents
- git commit-is-merge - Is the commit a merge commit?
- git commit-message-key-lines
Add all & edit all:
- git add-* - Add all files of a given type
- git edit-* - Edit all files of a given type
Alias helpers:
- git alias - Show help for git alias commands
- git add-alias - Create a new git alias
- git move-alias - Rename an existing git alias
Script helpers:
Remotes:
- git remotes-prune - For each remote branch, prune it
- git remotes-push - For each remote branch, push it
New repos:
- git init-empty - Initialize a repo with an empty rebaseable commit
- git clone-lean - Clone a repo as lean as possible
Hew branches:
- git hew - Delete all branches that are merged into a commit
- git hew-dry-run - Delete all branches that are merged into a commit (dry run)
- git hew-local - Delete local branches that are merged into a commit
- git hew-local-dry-run - Delete local branches that are merged (dry run)
- git hew-remote - Delete remote branches that are merged into a commit
- git hew-remote-dry-run - Delete remote branches that are merged into a commit (dry run)
Saving work:
- git archive - Create an archive file of everything in the repo
- git snapshot - Stash a snapshot of your current working tree
- git panic - When you're worried the world is coming to an end
Misc:
- git init-empty - Initialize a repo with an empty rebaseable commit
- git diff-*
- git grep-*
- git merge-span-* - Merge span aliases
- git orphans - Find all objects that aren't referenced by any other object
- git fixup - Fix a commit by amending it
- git rev-list-all-objects-by-size
- git rev-list-all-objects-by-size-and-name
- git cherry-pick-merge
- git refs-by-date - Sort by date for branches
Advanced aliases:
Topic branching for feature workflows:
- git topic-* - Read this first about topic aliases.
- git topic-base-branch - Show the topic base branch name
- git topic-begin - Start a new topic branch
- git topic-end - Finish the current topic branch
- git topic-sync - Synchronize the current topic branch
- git topic-move - Rename the current topic branch
Flow aliases:
- git get & git put
- git ours & git theirs
- git wip & git unwip
- git assume & git unassume
- git publish & git unpublish
reset & undo:
- git reset-* - Move backwards on the commit chain; synonym for undo-*
- git undo-* - Move backwards on the commit chain; synonym for reset-*
track & untrack:
- git track - Start tracking from a local branch to upstream branch
- git untrack - Stop tracking from a local branch to upstream branch
inbound & outbound:
- git inbound - Show incoming changes compared to upstream
- git outbound - Show outgoing changes compared to upstream
pull1 & push1:
Misc:
- git issues - Show issues that are described in commit messages
- git expunge - Use filter-branch to delete a file everywhere
- git reincarnate - Kill a branch then create it anew
- git diff-chunk - Do a diff of two chunks in revisions
- git last-tag - Show the last tag in the current branch
- git serve - Serve the local directory via git server daemon
- git track-all-remote-branches - Track all remote branches
- git cleaner - Clean a working tree using more power options
- git cleanest - Clean a working tree using the most power options
- git cleanout - Clean a working tree using typical options then checkout
Use gitk:
- git gitk-conflict - Use gitk to show conflicting merge
- git gitk-history-all - Use gitk to show full history
Use other version control systems:
Use graphviz:
- git graphviz - Use graphviz for display
- git a - Short for "git add"
- git aa - Short for "git add --all" - Add all paths
- git add-alias - Create a new git alias
- git add-cached - Add cached files
- git add-deleted - Add deleted files
- git add-ignored - Add ignored files
- git add-killed - Add killed files
- git add-modified - Add modified files
- git add-others - Add other files
- git add-stage - Add stage files
- git add-unmerged - Add unmerged files
- git aliases - List git aliases
- git ap - Short for "git add --patch" - Add by patch
- git archive - Create an archive file of everything in the repo
- git assume-all - Assume all files are unchanged
- git assume - Assume files are unchanged
- git assumed - Show which files are assumed
- git au - Short for "git add --update"
- git b - Short for "git branch"
- git bed - Edit the description of a branch
- git bm - List branches whose tips are reachable from the specified commit (HEAD if not specified)
- git bnm - List branches whose tips are not reachable from the specified commit (HEAD if not specified)
- git branch-commit-first - Show a branch's first commit hash (or hashes)
- git branch-commit-last - Show a branch's last commit hash (or hashes)
- git branch-commit-next - Show a branch's next commit hash (or hashes)
- git branch-commit-prev - Show a branch's previous commit hash (or hashes)
- git branch - Aliases related to git branch
- git branches - List branches
- git bsd - Show the description of a branch
- git bv - List branch information with hash and subject
- git bvv - List branch information with hash and subject and upstream
- git c - Short for "git commit"
- git ca - Amend the tip of the current branch; do not create a new commit
- git cam - Amend the tip of the current branch; edit the message
- git cane - Amend the tip of the current branch; do not edit the message
- git caa - Amend the tip of the current branch, automatically staging files that have been modified and deleted
- git caam - Amend the tip of the current branch, staging files, and edit the message
- git caane - Amend the tip of the current branch, staging files, and do not edit the message
- git chart - Show highlights chart of activity per author
- git cherry-pick-merge - Cherry pick a merge commit
- git churn - Show log of files that have many changes
- git ci - Commit interactive
- git cleaner - Clean a working tree using more power options
- git cleanest - Clean a working tree using the most power options
- git cleanout - Clean a working tree using typical options then checkout
- git clone-lean - Clone as lean as possible
- git cloner - Clone a repository and recurse on any of its submodules
- git cm - Commit with a message
- git co - Checkout a.k.a. update the working tree to match a branch or paths
- git cog - Checkout with guessing
- git cong - Checkout with no guessing
- git cob - Create a new branch from the current working tree, and switch to it
- git commit-is-merge - Is the commit a merge commit? If yes exit 0, else exit 1
- git commit-message-key-lines - Show the commit's keyword-marker lines
- git commit-parents - Show the commit's parents
- git cong - Checkout with no guessing
- git count -
- git cp - Cherry-pick - apply the changes introduced by some existing commits;
- git cpa - Abort the cherry-pick process
- git cpc - Continue the cherry-pick process
- git cpn - Cherry-pick with no commit
- git cpnx - Cherry-pick with no commit and with explanation
- git current-branch - Get the current branch name
- git hew - Delete branches that have been merged into a commit
- git hew-dry-run - Delete branches that have been merged into a commit (dry run)
- git hew-local - Delete local branches that have been merged into a commit
- git hew-local-dry-run - Delete local branches that have been merged into a commit (dry run)
- git hew-remote - Delete remote branches that have been merged into an upstream commit
- git hew-remote-dry-run - Delete remote branches that have been merged into an upstream commit (dry run)
- git cvs-e - CVS export
- git cvs-i - CVS import
- git d - Short for "git diff"
- git dc - Diff in order to show changes not yet staged
- git dd - Diff deep - show changes with our preferred options
- git debug - Help debugging builtins
- git default-branch - Get the default branch name
- git diff-all - For each diff, call difftool
- git diff-changes - Show diff of changes
- git diff-chunk - Show the diff of one chunk
- git diff-deep - Diff with deep information using our preferred options, a.k.a.
dd
- git diff-staged - Show diffs that are cached i.e. staged
- git diff-stat - Diff with stat
- git discard - Discard changes in a file (or a list of files) in working tree
- git ds - Show changes about to be committed
- git dw - Show changes by word, not line
- git edit-cached - Edit cached files
- git edit-deleted - Edit deleted files
- git edit-ignored - Edit ignored files
- git edit-killed - Edit killed files
- git edit-modified - Edit modified files
- git edit-others - Edit other files
- git edit-stage - Edit stage files
- git edit-unmerged - Edit unmerged files
- git exec - Execute a shell script
- git expunge - Delete a file everywhere
- git f - Short for "git fetch"
- git fa - Fetch all remotes
- git fav - Fetch all remotes, with verbose output
- git fixup - Fix a commit by amending it
- git g - Short for "git grep"
- git get - Get all changes for the current branch
- git gg - Grep group i.e. search with our preferred options
- git gitk-conflict - Use gitk tool to show conflicting merge
- git gitk-history-all - Use gitk tool to show full history
- git gn - Grep and show line number
- git graphviz - Use graphviz tool for display
- git grep-ack -
- git grep-all - Find text in any commit ever
- git grep-group - Find text and group the output lines, a.k.a.
gg
- git heads - Show log of heads
- git ignore - Ignore all untracked files by appending them to ".gitignore"
- git inbound - Show incoming changes compared to upstream
- git init-empty - Initialize a repo with an empty rebaseable commit
- git initer - Initialize a repo using our recommended way i.e. with an empty rebaseable commit
- git intercommit - Use interdiff to see patch modifications
- git issues - List all issues mentioned in commit messages between range of commits
- git l - Short for "git log"
- git last-tag - Show the last tag in the current branch
- git last-tagged - Show the last annotated tag in all branches
- git lfp - Show log with first parent
- git lg - Show log with a text-based graphical representation of the commit history
- git ll - Log list - Show log list with our preferred options and short information
- git lll - Log list long - Show log list with our preferred options and long information
- git lo - Show log with one line per item
- git log-1-day - Show log with the recent day
- git log-1-hour - Show log with the recent hour
- git log-1-month - Show log with the recent month
- git log-1-week - Show log with the recent week
- git log-1-year - Show log with the recent year
- git log-date-first - Show the date of the earliest commit, in strict ISO 8601 format
- git log-date-last - Show the date of the latest commit, in strict ISO 8601 format
- git log-fetched - Show log of fetched commits vs. origin/main
- git log-fresh - Show log of new commits after you fetched, with stats, excluding merges
- git log-graph -
- git log-list - Show log list with our preferred options and short information
- git log-list-long - Show log list with our preferred options and long information
- git log-my - Show log with my own commits by my own user email
- git log-my-day - Show log with my own recent day
- git log-my-hour - Show log with my own recent hour
- git log-my-month - Show log with my own recent month
- git log-my-week - Show log with my own recent week
- git log-my-year - Show log with my own recent year
- git log-of-count-and-day - Show log with count and day
- git log-of-count-and-day-of-week - Show log with count and day of week
- git log-of-count-and-email - Show log with count and email
- git log-of-count-and-format - Show log with count and custom format string
- git log-of-count-and-format-with-date - Show log with count and custom format string and date
- git log-of-count-and-hour - Show log with count and hour
- git log-of-count-and-hour-of-day - Show log with count and hour of day
- git log-of-count-and-month - Show log with count and month
- git log-of-count-and-week - Show log with count and week
- git log-of-count-and-week-of-year - Show log with count and week of year
- git log-of-count-and-year - Show log with count and year
- git log-of-day-and-count - Show log with day and count
- git log-of-day-of-week-and-count - Show log with week and count
- git log-of-email-and-count - Show log with email and count
- git log-of-format-and-count - Show a specific format string and count of log entries
- git log-of-format-and-count-with-date - Show log with custom format string and count with date
- git log-of-hour-and-count - Show log with hour and count
- git log-of-hour-of-day-and-count - Show log with hour of day and count
- git log-of-month-and-count - Show log with month and count
- git log-of-week-and-count - Show log with week and count
- git log-of-week-of-year-and-count - Show log with week of year and count
- git log-of-year-and-count - Show log with year and count
- git log-refs - Show log with commits that are referred by some branch or tag
- git log-timeline -
- git lp - Show log with patch generation
- git ls - List files in the index and the working tree; like Unix "ls" command
- git lsd - List files and show debug information
- git lsfn - List files and show full name
- git lsio - List files that git is ignoring
- git lto - Show log with items appearing in topological order
- git m - Short for "git merge"
- git ma - Merge abort i.e. abort the merge process
- git mainly - Make local like main
- git mc - Merge continue i.e. continue the merge process
- git mncnf - Merge with no autocommit, and with no fast-forward
- git merge-span - Merge span aliases
- git merge-span-diff - Show the changes that were introduced by a merge
- git merge-span-difftool - Show the changes that were introduced by a merge, in your difftool
- git merge-span-log - Find the commits that were introduced by a merge
- git move-alias - Rename an existing git alias
- git o - Short for "git checkout"
- git optimizer - Optimize the repository by pruning and repacking
- git orphans - Find all objects that aren't referenced by any other object
- git ours - Checkout our version of a file and add it
- git outbound - Show outgoing changes compared to upstream
- git p - Short for "git pull"
- git panic - When you're a little worried that the world is coming to an end
- git pf - Pull if a merge can be resolved as a fast-forward, otherwise fail
- git pr - Pull with rebase i.e. provide a cleaner, linear, bisectable history
- git prp - Pull with rebase preserve of merge commits
- git pruner - Prune everything that is unreachable now
- git publish - Publish the current branch
- git pull1 - Pull just the one current branch
- git push1 - Push just the one current branch
- git pushy - Push with force and lease
- git put - Put all changes for the current branch
- git rb - Short for "git rebase"
- git rba - Rebase abort i.e. abort the rebase process
- git rbc - Rebase continue i.e. continue the rebase process
- git rbi - Rebase interactive i.e. do a rebase with prompts
- git rbiu - Rebase interactive on unpushed commits
- git rbs - Rebase skip i.e. restart the rebase process by skipping the current patch
- git rebase-branch - Interactively rebase all the commits on the current branch
- git rebase-recent - Rebase recent commits with interactive
- git refs-by-date - Show refs sorted by date for branches
- git reincarnate - Delete a branch then create it anew
- git remote-ref - TODO
- git remotes-prune - For each remote branch, prune it
- git remotes-push - For each remote branch, push it
- git repacker - Repack a repo as recommended by Linus
- git reset-commit - Reset a commit with a soft reset
- git reset-commit-hard - Reset a commit with a hard reset
- git reset-commit-hard-clean - Reset a commit with a hard reset and a clean
- git reset-to-pristine - Reset commits and clean all differences
- git reset-to-upstream - Reset commits back to the upstream branch
- git rev-list-all-objects-by-size-and-name - List all objects by size in bytes and file name
- git rev-list-all-objects-by-size - List all blobs by size in bytes
- git rl - Short for "git reflog"
- git rr - Short for "git remote"
- git rrp - Remote prune i.e. delete all stale remote-tracking branches under
- git rrs - Remote show i.e. give information about the remote
- git rru - remote update i.e. fetch updates for a named set of remotes in the repository as defined by remotes
- git rv - Short for "git revert"
- git rvnc - Revert with no commit i.e. without autocommit
- git s - Short for "git status"
- git sb - Short for "git show-branch" i.e. print a list of branches and their commits
- git search-commits - Search for a given string in all patches and print commit messages
- git serve - Serve the local directory by starting a git server daemon
- git show-unreachable - Show logs of unreachable commits
- git sm - Short for "git submodule"
- git sma - Submodule add i.e. add a submodule to this repo
- git smi - Submodule init i.e. initialize a submodule in this repo
- git sms - Submodule sync i.e. synchronize a submodule in this repo
- git smu - Submodule update i.e. update a submodule in this repo
- git smui - Submodule update with initialize
- git smuir - Submodule update with initialize and recursive; this is useful to bring a submodule fully up to date
- git snapshot - Take a snapshot of your current working tree
- git ss - Status with short format
- git ssb - Status with short format and branch info
- git stashes - List stashes
- git summary - Show a summary of overview metrics
- git svn-b - Subversion branch
- git svn-c - Subversion commit
- git svn-cp - Subversion cherry pick
- git svn-m - Subversion merge
- git tags - List tags
- git theirs - Checkout their version of a file and add it
- git top - Get the top level directory name
- git topic-* - Read this first about topic aliases
- git topic-base-branch - Show the project base topic branch name
- git topic-move - Rename the current topic branch
- git topic-begin - Start a new topic branch
- git topic-end - Finish the current topic branch
- git topic-sync - Synchronize the current topic branch by doing updates
- git track-all-remote-branches - Track all remote branches that aren't already being tracked
- git track - Start tracking a branch, with default parameters, and showing the command
- git unadd - Reset something that's been added
- git unassume-all - Unassume all files
- git unassume - Unassume files
- git uncommit - Reset one commit
- git undo-commit - Undo a commit with a soft reset
- git undo-commit-hard - Undo a commit with a hard reset
- git undo-commit-hard-clean - Undo a commit with a hard reset and a clean
- git undo-to-pristine - Undo commits and clean all differences
- git undo-to-upstream - Undo commits back to the upstream branch
- git unpublish - Unpublish the current branch
- git untrack - Stop tracking a branch, with default parameters, and showing the command
- git unwip - Load "work in progress"
- git upstream-branch - Get the upstream branch name
- git w - Short for "git whatchanged"
- git whatis - Given a git object, try to show it briefly
- git who - Show a short log of who has contributed commits, in descending order
- git whois - Given a string for an author, try to figure out full name and email
- git wip - Save "work in progress"
- Package: gitalias
- Version: 28.0.1
- Created: 2016-06-17T22:05:43Z
- Updated: 2023-05-31T11:39:14Z
- License: GPL-2.0-or-later or contact us for custom license
- Contact: Joel Parker Henderson (joel@joelparkerhenderson.com)