First (second) dev.to article! Learn to hit the save button, Jonathan!
You can create aliases both on the repo level and globally just by adding or omitting the --global
flag.
Creating aliases is easy. Just type git config --global alias.co checkout
to create a global alias for git checkout
. Now, all you have to do is type git co develop
. Awesome, right?
Some commands have flags you can add. For example, the checkout
command allows you to optionally create and checkout a new branch with the -b
flag. Git handles these aliases with ease by just surrounding the command with quotes. I like to use cob
for that.
git config --global alias.cob "checkout -b"
Now, to create a new branch, I just type git cob new_branch_name
.
Here are some of my favorite aliases:
st status
co checkout
cob checkout -b
lol log --oneline
If you want to chain commands together, which begin with git
, you have to prefix that with a bang (!).
Say I wanted to stash my changes and do a pull in one command. Let's call this alias "shelve". I would type the following:
git config --global alias.shelve "!git stash && git pull"
I'm liking dev.to so far and I hope to write some more articles. I especially like talking about Git.
Reference: git config
Top comments (12)
That is good stuff, the only issue with this is that if you become dependent on these specific commands and you have to use a different environment (someone else's machine) you could forget the actual commands.
I use text expander on osx to do similar things with common git commands.
Just something to keep in mind. 😁
You could always quickly source your alias config from let's say a gist.
Oh yeah, for sure. I strongly advocate learning the commands before making an alias. But if you switch workspaces as much as I do, I'm creating aliases as much as I'm typing the full command.
typo:
git log --online
should begit log --oneline
Haha, I mistype that one so much that I define
online
as an alias foroneline
in my gitconfig!Haha! Oops! Thanks for catching that!
Fixed.
I always end up relying on *sh aliases rather than using git's alias. In the end,
gs
orgst
is still better thangit st
to me.Great Stuff !! Thanks.
Thanks for writeup.
It would help if guidelines to undo the global alias set up is given here as well.
One of my favourites is git config --global alias.oops "commit --amend --no-edit"
Interesting that git has this feature.
What is the advantage over just using shell aliases? Does autocompletion work in one case but not the other?