Creating Git Aliases

By  on  

I create shortcuts for everything. I create variables which act as text shortcuts, shortcuts in TextMate to generate CSS/JS/HTML, and bash scripts so I don't have to type in the same commands over and over again. So why should version control software be any different? I commit and push religiously so I create Git aliases to save myself a few keystrokes.

Sample Aliases

#make "com" alias for "commit"
git config alias.com commit

#make "co" alias for checkout
git config alias.co checkout

#make "br" alias for branch
git config alias.br branch

# When you want to see just the differences of one function in one file in two different commits
git config alias.funcdiff '!sh -c "git show \"\$1:\$3\" | sed -n \"/^[^ \t].*\$4(/,/^}/p\" > .tmp1 &&
        git show \"\$2:\$3\" | sed -n \"/^[^ \t].*\$4(/,/^}/p\" > .tmp2 &&
        git diff --no-index .tmp1 .tmp2"' -

These are just some sample Git aliases. You can view more detailed (and by detailed I mean brain-numbing) examples of git aliases at the Git Wiki.

Recent Features

  • By
    5 HTML5 APIs You Didn’t Know Existed

    When you say or read "HTML5", you half expect exotic dancers and unicorns to walk into the room to the tune of "I'm Sexy and I Know It."  Can you blame us though?  We watched the fundamental APIs stagnate for so long that a basic feature...

  • By
    Being a Dev Dad

    I get asked loads of questions every day but I'm always surprised that they're rarely questions about code or even tech -- many of the questions I get are more about non-dev stuff like what my office is like, what software I use, and oftentimes...

Incredible Demos

  • By
    Create Spinning, Fading Icons with CSS3 and MooTools

    A goal of my latest blog redesign was to practice what I preached a bit more;  add a bit more subtle flair.  One of the ways I accomplished that was by using CSS3 animations to change the display of my profile icons (RSS, GitHub, etc.)  I...

  • By
    MooTools & Printing – Creating a Links Table of Contents

    One detail we sometimes forget when considering print for websites is that the user cannot see the URLs of links when the page prints. While showing link URLs isn't always important, some websites could greatly benefit from doing so. This tutorial will show you...

Discussion

  1. Nice! I use ci for commit though, more like Subversion. I also have di for diff, st for status and sta for stash.

  2. Terry

    I’m trying to get the funcdiff alias created. When I try to call it with something like:

    git funcdiff “rel\path\to\file” functionName
    or
    git funcdiff HEAD~2 HEAD “rel\path\to\file” functionName

    both give me an error like:
    fatal: Path ‘funcitonName’ does not exist in ‘sha1-2’.
    fatal: Invalid object name ‘rel\path\to\file’.

    I’ve Googled everywhere for anyone using this alias to see a sample syntax, but no one has one. Have you used it successfully?

  3. Dan

    You can make aliases for branch name, too. For example:

    git symbolic-ref head HEAD

  4. Peter

    Dan, command

    git symbolic-ref head HEAD

    ruins git repo in windows. Because it overwrites “HEAD” with “head” in “.git” directory

    For ones, that tried this: just rename the file back

  5. Shahzeb

    Very useful, thanks!

  6. Thanks for the commands,
    I need to know how to create an alias for paths.
    For example if I need to write “git push PATH” instead of “git push gitolite@codex…”
    Regards

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!