【学了就忘】Git操作 — 29.Git命令设置别名

1、什么是Git命令的别名

Git中命令很多,有些命令比较长,有些命令也不好记,也容易写错。

例如:你有没有经常敲错命令?比如git status?如果敲git st就表示git status那就简单多了。

Git 并不会在你输入部分命令时,自动推断出你想要执行的命令。 如果不想每次都输入完整的Git命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名。

也就是给status命令配置别名,告诉Git,以后st就表示status

总结:什么是别名?

别名用于创建映射到较长命令的较短命令。就和Linux命令设置别名一样。

2、别名的全局配置

(1)配置全局别名

我们就以上面说的git status命令为例进行演示。

我们只需要敲一行命令,告诉Git,以后st就表示status

# 1.查看工作目录文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
git: 'st' is not a git command. See 'git --help'.

The most similar commands are
        status
        reset
        stage
        stash
        svn

# 可以看到执行git st命令的时候,提示“st”不是git命令。

# 2.给他git status 设置别名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --global alias.st status

# 3.再次查看工作目录文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git status
On branch master
nothing to commit, working tree clean

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
On branch master
nothing to commit, working tree clean

我们可以看到git status命令设置完别名后,别名和原命令都可以使用。

说明:

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

  • 我们之前说配置用户签名的时候,--global参数是在系统用户目录下的.gitconfig文件中进行配置。

    配置别名的内容如下:

    [user]
      name = sun_wk
      email = sun_wk@126.com
    [alias]   
      st = status # 这里就是配置的别名
    
  • --global参数配置的是全局参数,也就是针对该系统用户,对该系统中所有的Git仓库的配置。

    换句话说,就是加上--global参数,该别名对本机中所有的Git仓库都管用。

(2)删除全局别名

有两种方式:

  1. 打开系统用户目录下的.gitconfig文件,把该别名手动删除。
  2. 使用命令行删除,执行命令:git config --global --unset alias.st

提示:删除别名之后,别名失效。

3、别名局部配置

(1)配置局部别名

还是以git status命令为例进行演示。

基本上和全局别名的配置一样,就是把--global参数换成--local,或者就是去掉不写。(不写默认就是执行--local参数)

# 下面进行简单说明
# 1.查看工作目录文件状态,使用git st不可以
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
git: 'st' is not a git command. See 'git --help'.

The most similar commands are
        status
        reset
        stage
        stash
        svn

# 2.配置别名
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config alias.st status

# 3.再次使用git st,查看工作目录文件状态
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git st
On branch master
nothing to commit, working tree clean

说明:

  • 没有加--global参数,默认在本地版本库中的配置文件进行配置,所以只针对该仓库起作用。

  • 我们之前说配置用户签名的时候,本地版本库的配置文件为.git/config文件。

    现在查看该文件如下:

    [core]
      repositoryformatversion = 0
      filemode = false
      bare = false
      logallrefupdates = true
      symlinks = false
      ignorecase = true
    [alias]
      st = status # 这里就是配置的局部别名
    

(2)删除局部别名

有两种方式:

  1. 打开当前Git仓库目录下的.git/config文件,把该别名手动删除。
  2. 使用命令行删除,执行命令:git config --unset alias.st

提示:删除别名之后,别名失效。

4、删除所有别名

(1)删除所有全局别名命令:

$ git config --global --remove-section alias

(2)删除所有局部别名命令:

$ git config --remove-section alias

5、小练习

我们上一篇文章介绍了,如何修改Git历史版本信息内容和颜色的显示。

如:git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'

我们就把上命令配置别名,执行命令如下:

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %C(cyan)%s %C(magenta)(%cr) %C(bold blue)<%an>%Creset'"

执行git lg命令,显示效果如下:

当然你也可以把别名定义为log

总结:随着你继续不断地使用 Git,可能也会经常使用别名命令,所以创建别名这种偷懒的办法我们是赞成的。

补充:git config --global color.ui true:让Git显示顾色,会让命令输出看起来更醒目。(效果没有上面手动配置的颜色显示丰富)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容