Git别名和配置文件

备注:

本文参考于廖雪峰老师的博客Git教程。依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文。

配置别名

如果,如果这么神器的Git版本控制系统,可以简化命令。比如git status,直接用git st代替,简直爽翻天。

通过为Git命令配置别名,就能实现st表示status,如下:

$ git config --global alias.st status

此时git st就表示git status

据此可以简化更多命令,比如co表示checkoutci表示commitbr表示branch

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

这样提交就能用如下简写:

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

参数--global是全局参数,配置的别名可以在当前计算机下使用。

  • unstage别名

再比如撤销暂存区修改的命令git reset HEAD file是一个unstage操作,则可以unstage别名:

$ git config --global alias.unstage 'reset HEAD'
  • git last别名

比如配置git last,显示最后一次提交信息:

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

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

甚至还有人丧心病狂地把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的效果可以使用不同颜色标识出log记录,看起来非常炫

配置文件

Git的配置,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

  • git配置文件的位置

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

如下为廖雪峰老师博客中展示的config文件内容

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

[alias]是别名配置项,要删除别名,直接把对应的行删掉即可。

当前用户的Git配置文件放在用户主目录下的 .gitconfig文件 中。

linux系统用户目录在home目录下查看
Windows用户目录为C:C:\Users\用户名,通过%USERPROFILE%%HOMEPATH%直接访问即可

$ cat .gitconfig
[user]
        name = Your Name
        email = [email protected]
[core]
        autocrlf = false
[filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        process = git-lfs filter-process
        required = true