【Git 学习笔记_16】第七章 用 git hook 钩子、别名、脚本提升日常工作效率(下)

7.5 配置并使用 Git 别名

git 别名类似 Unix 的别名,是一个简化的 git 操作命令,可以通过 git config 配置到用户级或本地仓库级。

本节以 jgit 库为例,演示 git 别名的常见用法:

# checkout new branch gitAlias
$ git checkout -b gitAlias --track origin/stable-3.2
# git amm
$ git config alias.amm 'commit --amend'
$ git amm
# git lline
$ git config alias.lline 'log --oneline -10'
$ git lline
# git co
$ git config alias.co checkout
$ git co master
$ git co gitAlias
# git ca
$ git config alias.ca 'commit -a -m "Quick commit"'
# test git ca
$ echo "Sharks" > aquarium
$ echo "New HEADERTEXT" > pom.xml
$ git status
$ git ca
$ git status
$ git log -1
# git count (Linux)
$ git config alias.count '!git log --all --oneline | wc -l'
$ git count
8671
# git wa
$ git config alias.wa '!explorer .' # Windows
$ git config alias.wa '!open .' # MacOS
$ git config alias.wa '!xdg-open .' # Linux
# git gl1
$ git config alias.gl1 'log -1 --name-status'
$ git gl1
$ git gl1 origin/stable-2.1
# query git aliases
$ git config --list  | grep alias
# Rename into an alias
$ git config alias.al '!git config --list | grep alias'
$ git al
alias.st=status
alias.ci=commit
alias.amm=commit --amend
alias.lline=log --oneline -10
alias.co=checkout
alias.ca=commit -a -m Quick
alias.count=!git log --all --oneline | wc -l
alias.wa=!explorer .
alias.gl1=log -1 --name-status
alias.al=!git config --list | grep alias

Git 别名可以简化长命令,核心理念是 化繁为简,尤其是日常工作中经常使用的长命令(格式化、复杂操作等),毕竟缩写较之长难句的执行,不仅高效且更不容易出 bug

7.6 配置并使用 Git 脚本

除了别名,git 还可以将外部脚本设置为 git 命令。此时目标脚本需要满足两个条件:

  1. 文件名为 get-scriptname
  2. 该脚本在环境变量 PATH 中。

调用脚本:git scriptname

本节演示在 /usr/bin/ 目录下新建自定义 git 命令脚本 likeaboss

$ vim /usr/bin/git-likeaboss

git-likeaboss

#!/bin/bash
NUMBEROFCOMMITS=$(git log --all --oneline | wc -l)
while :
WHICHCOMMIT=$(( ( RANDOM % $NUMBEROFCOMMITS ) + 1 ))
COMMITSUBJECT=$(git log --oneline --all -${WHICHCOMMIT} | tail -n1)
COMMITSUBJECT_=$(echo "$COMMITSUBJECT" | cut -b1-60)
do
  if [ $RANDOM -lt 14000 ]; then
    echo "${COMMITSUBJECT_} PASSED"
  elif [ $RANDOM -gt 15000 ]; then
    echo "${COMMITSUBJECT_} FAILED"
  fi
done

测试:

$ git likeaboss

实测结果如下:

在这里插入图片描述

这样生成的 git 命令,还具有自动更正提醒功能:

$ git likeboss
git: 'likeboss' is not a git command. See 'git --help'.

The most similar command is
        likeaboss

以及 TAB 自动补全功能:

在这里插入图片描述

git 别名和自定义脚本命令都可以自动补全。可以通过 git <tab> <tab> 快速查看 git 支持的命令:

在这里插入图片描述

7.7 设置并使用提交消息模板

git 除了 7.2 小节提过的动态模板外,还可以配置静态模板,其本质就是加载一个静态文件的内容到提交注释中(相关配置在 第 2 章第 3 节 也提到过,这里内容有所重叠,就当是知识点回顾吧)。

~/committemplate 文件中输入如下内容:

#subject no more than 74 characters please
   
#BugFix id in the following formats
#artf [123456]
#PCP [AN12354365478]
#Bug: 123456
#Descriptive text about what you have done 
#Also why you have chosen to do in that way as 
#this will make it easier for reviewers and other
#developers.

然后配置到 git 静态模板,语法为 git config commit.template <pathtofile>

# config as static template
$ git config commit.template ~/committemplate
# list the item
$ git config --list | grep template
# Have a test
$ git commit --allow-empty

结果如下:

在这里插入图片描述

可见,静态模板可以用于更好地指引开发者按要求的格式规范填写提交注释,少走弯路。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值