配置别名

有没有常常敲错命令?好比git statusstatus这个单词真心很差记。git

若是敲git st就表示git status那就简单多了,固然这种偷懒的办法咱们是极力同意的。github

咱们只须要敲一行命令,告诉Git,之后st就表示statussql

$ git config --global alias.st status 

好了,如今敲git st看看效果。ruby

固然还有别的命令能够简写,不少人都用co表示checkoutci表示commitbr表示branchfetch

$ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch 

之后提交就能够简写成:url

$ git ci -m "bala bala bala..." 

--global参数是全局参数,也就是这些命令在这台电脑的全部Git仓库下都有用。spa

撤销修改一节中,咱们知道,命令git reset HEAD file能够把暂存区的修改撤销掉(unstage),从新放回工做区。既然是一个unstage操做,就能够配置一个unstage别名:3d

$ git config --global alias.unstage 'reset HEAD' 

当你敲入命令:code

$ git unstage test.py 

实际上Git执行的是:orm

$ git reset HEAD test.py 

配置一个git last,让其显示最后一次提交信息:

$ git config --global alias.last 'log -1' 

这样,用git last就能显示最近一次的提交:

$ git last commit adca45d317e6d8a4b23f9811c3d7b7f0f180bfe2 Merge: bd6ae48 291bea8 Author: Michael Liao <askxuefeng@gmail.com> Date: Thu Aug 22 22:49:22 2013 +0800 merge & fix hello.py 

甚至还有人丧心病狂地把lg配置成了:

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 

来看看git lg的效果:

git-lg

为何不早点告诉我?别激动,咱不是为了多记几个英文单词嘛!

配置文件

配置Git的时候,加上--global是针对当前用户起做用的,若是不加,那只针对当前的仓库起做用。

配置文件放哪了?每一个仓库的Git配置文件都放在.git/config文件中:

$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = git@github.com:michaelliao/learngit.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [alias] last = log -1 

别名就在[alias]后面,要删除别名,直接把对应的行删掉便可。

而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

$ cat .gitconfig [alias] co = checkout ci = commit br = branch st = status [user] name = Your Name email = your@email.com 

配置别名也能够直接修改这个文件,若是改错了,能够删掉文件从新经过命令配置。

小结

给Git配置好别名,就能够输入命令时偷个懒。咱们鼓励偷懒。

相关文章
相关标签/搜索