DEV Community

Cover image for Work faster with Git aliases

Work faster with Git aliases

Peter Jausovec on March 22, 2019

Back when I started with programming, there was no Git yet. I tried using Visual Sourcesafe a couple of times for some pet projects and the only th...
Collapse
 
ecnepsnai profile image
Ian Spence

Aliases are great - they can really save a lot of time, but I always caution people from using them too much. If you ever end up in a spot where you don't have any of your aliases, you'll be struggling to remember the original command.

Collapse
 
trevornemanic profile image
Trevor Nemanic • Edited

This is a good point. You can commit your aliases to a Github gist, or other online source control, just in case.

Collapse
 
peterj profile image
Peter Jausovec

Good point. I usually have all my settings in a Github repo where I can pull it down if needed.

Collapse
 
devshawn profile image
Shawn Seymour

Nice article! I use git aliases heavily -- I personally use the zsh shell with oh-my-zsh, which comes with a huge list of git aliases in the form of a plugin (github.com/robbyrussell/oh-my-zsh/...)

It's great!

Collapse
 
bsara profile image
Brandon Sarà • Edited

I love aliases so much, I have A TON, but the most useful are these:

rv = !git stash && git stash drop

pr = remote update --prune

rmb = !sh -c 'git push origin :refs/heads/$1 && git branch -D $1' -
rmt = !sh -c 'git push origin :refs/tags/$1 && git tag -d $1' -

This next list is all of the log aliases that I have...and I'd be lost without them:

l   = log --abbrev-commit --first-parent --pretty=format:'%C(dim white)%h%C(reset)%C(bold green)%d%C(reset) %s %C(yellow)<%an>%C(reset)'
ll  = log --abbrev-commit --graph --pretty=format:'%C(dim white)%h%C(reset)%C(bold green)%d%C(reset) %s %C(yellow)<%an>%C(reset)'

ld  = log --abbrev-commit --first-parent --pretty=format:'%C(bold blue)%ai%C(reset) - %C(dim white)%h%C(reset)%C(bold green)%d%C(reset) %s %C(yellow)<%an>%C(reset)'
lda = log --abbrev-commit --graph --pretty=format:'%C(bold blue)%ai%C(reset) - %C(dim white)%h%C(reset)%C(bold green)%d%C(reset) %s %C(yellow)<%an>%C(reset)'

la  = log --abbrev-commit --name-status --first-parent --pretty=format:'%C(dim white)%h%C(reset)%C(bold green)%d%C(reset) %s %C(yellow)<%an>%C(reset)'
lla = log --abbrev-commit --name-status --pretty=format:'%C(dim white)%h%C(reset)%C(bold green)%d%C(reset) %s %C(yellow)<%an>%C(reset)'

lg  = !git lg1
lg1 = !git lg1-specific --all
lg2 = !git lg2-specific --all
lg3 = !git lg3-specific --all

lg1-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)'
lg2-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)'
lg3-specific = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset) %C(bold cyan)(committed: %cD)%C(reset) %C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset)%n''          %C(dim white)- %an <%ae> %C(reset) %C(dim white)(committer: %cn <%ce>)%C(reset)'
Collapse
 
trevornemanic profile image
Trevor Nemanic • Edited

s = stash
st = status
cp = cherry-pick
co = checkout

I use Android Studio (Intellij-based) to checkout remote branches via GUI or the co alias to create a local branch with "git co -b ". s and st come into play in many pull-requests because I can make test modifications and revert back to where I was. Lastly, cp is useful because "cherry-pick" is very annoying to type out correctly.

Collapse
 
gyandeeps profile image
Gyandeep Singh

Here is my list: gyandeeps.com/git-helpers/

Collapse
 
sharptvrepairdubai profile image
SharpTVRepairDubai

Nice point. I have all my settings in a Github repo. it works very great.
Dubai’s leading multi-brand Sharp TV Repair Dubai. Get the best price on tv repairing,
Effective and at the nominal prices. Get your tv repaired by our expert technicians.

Collapse
 
martinriddar profile image
Martin Markström Riddar

Thanks for the article, but (yes, the infamous but) maybe you would consider adding a short paragraph early on explaining what a git alias is? I didn't know about them before and even though I found it obvious upon reading your article it would be nice to get an explanation early on.
/a git novice