I want to introduce a feature that can make your Git experience simpler, easier, and more familiar: aliases or shorthands
Git doesn’t automatically infer your command if you type it in partially. If you don’t want to type the entire text of each of the Git commands, you can easily set up an alias for each command using
git config. Here are a couple of examples you may want to set up:
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
On unix, use single quotes if the alias has a space:
$ git config --global alias.ci 'commit -v'
On windows, use double quotes if the alias has a space or a command line argument:
c:\dev> git config --global alias.ci "commit -v"
The alias command even accepts functions as parameters. Take a look at aliases.
This means that, for example, instead of typing
git commit, you just need to type
git ci. As you go on using Git, you’ll probably use other commands frequently as well; don’t hesitate to create new aliases.
Basically you just need to add lines to
st = status
ci = commit -v
You can copy and use this complete configuration for yourself:
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
This technique can also be very useful in creating commands that you think should exist. For example, to correct the usability problem you encountered with unstaging a file, you can add your own unstage alias to Git:
$ git config --global alias.unstage 'reset HEAD --'
This makes the following two commands equivalent:
$ git unstage fileA
$ git reset HEAD -- fileA
This seems a bit clearer. It’s also common to add a
last command, like this:
$ git config --global alias.last 'log -1 HEAD'
This way, you can see the last commit easily:
$ git last
Date: Tue Aug 26 19:48:51 2008 +0800
As you can tell, Git simply replaces the new command with whatever you alias it for. However, maybe you want to run an external command, rather than a Git subcommand. In that case, you start the command with a
! character. This is useful if you write your own tools that work with a Git repository. We can demonstrate by aliasing
git visual to run
$ git config --global alias.visual '!gitk'
ohmyzsh aliases: refere here