# Creating Git Aliases

Written by David Walsh on September 25, 2009 · 4 Comments

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.

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. 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

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. You can make aliases for branch name, too. For example:

4. Dan, command

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

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

## Be Heard

Tip: Wrap your code in <pre> tags or link to a GitHub Gist!

Use Code Editor
Older
PNGCRUSH a Directory of Images