使用Gitmoji进行git commit的快速查阅指南
前言
大家应该都知道用表情符号规范git commit内容的一个很火很好玩的项目叫做Gitmoji。
Gitmoji是一个开源项目,专门规定了在 Github提交代码时应当遵循的emoji规范。
但是对于初学者,面对这么多的图标,经常不知道图标对应着什么意思,我就想有没有什么方法帮助我们快速查阅这些图标对应的意思,方便刚入门的中文开发者更好上手呢?这就是本文的初衷。
在汇总了自己以及网络上的方法后,有了本文这篇方便查阅gitmoji的指南,利用gitmoji帮助我们更好的git commit。
1. 查阅方法:脚本法
可以把这些图标和他们对应的意思都做成一个脚本,这样想要git commit的时候执行一下脚本就会弹出提示信息不就行了吗?
受到hooj0/git-emoji-guide项目的启发(介绍博客在git-emoji-guide中),里面有一个git-emoji-list.md,我想的是把它修改为一个emoji.sh的脚本,给这个脚本添加可执行权限后在终端中打印提示信息。
1.1 利用 VS Code 编辑多行文本快速写脚本文件
在~/Documents文件夹目录下执行gedit ./emoji.sh新建一个文件
把git-emoji-list.md的内容复制到emoji.sh后用VS Code打开。

考虑到脚本中的输出方式是echo “输出内容”,这就要求要在这么多行的最前面都加上echo ",在多行的最后面加上"。并且每一行中的两个小撇符号都要修改为'符号,不然无法正常输出。
需求明确后,参考博客vscode同时编辑多处的三种方法操作:
第一步,每行最前面都加上
echo ":按shift+alt,再使用鼠标拖动,出现竖直的列光标,同时可以选中多列

写入echo "后效果如下

第二步,每行最后面加上
":选中这些行,按shift+alt+i,可以在每行末尾出现光标

写入"后,效果如下

第三步,每一行中的第一次出现的
小撇符号都修改为'符号:按住alt,用鼠标左键点击,可以出现多个光标,输入的内容可以在光标处同时增加。(这里需要每一行都去点一下,比较繁琐我就不具体截图说明了,看原博客即可理解)第四步,每一行中的第二次出现的
小撇符号都修改为'符号:操作同第三步

1.2 给脚本添加可执行权限
之后保存文件,添加可执行权限并运行即可看到提示信息(按下Tab键可以补全文件名):
$ sudo chmod +x emoji.sh
$ ./emoji.sh

1.3 修改环境变量 PATH 使脚本在所有路径下都可以执行(全局执行)
此时emoji.sh只能在当前路径下运行,如果想要把它设置为全局运行的一个脚本,有许多种方式,我参考博客Ubuntu:配置环境变量的两种常用方法( .bashrc 和 /etc/profile )和ubuntu设置全局脚本_ubuntu环境变量的三种设置方法,介绍两种方法:
- 第一种,直接把
emoji.sh复制一份到/usr/local/bin/下:sudo cp ~/Documents/emoji.sh /usr/local/bin/。以后在任意路径下都可以直接执行emoji.sh。 - 第二种,把当前的
/home/zqchen/Documents/路径添加到环境变量PATH中:编辑/home/zqchen/.bashrc文件,在末尾添加一行:
export PATH=/home/zqchen/Documents/:$PATH
之后执行source ./bashrc使之生效,也可以起到第一种方法的效果。
这里先占个坑,以后有时间我会专门写一篇介绍添加环境变量的临时和永久的方法以及开机运行各个重要脚本的顺序。
2. 查阅方法:利用 Git 本身配置 git commit 的个性化提示信息
第二种看到提示信息的方法是我发现的另外一个项目GIT颜文字COMMIT(CLI命令行模式),使用的Github仓库为:使用git颜文字美化commit,这个项目利用了emojify这一脚本工具(可以使得命令行中显示图标而非图标的符号代码),通过利用git config命令,新建一个专门写有commit提示信息的文本文件,完成git commit的提示的。
该方法的另外两个参考来源如下:
- Github Gist - Using Git Commit Message Templates to Write Better Commit Messages
- Git book - Customizing Git - Git Configuration
2.1 新建个性化提示信息的文本文件 gitmessage.txt
先在/home/zqchen/下执行gedit ./.zqchen_gitmessage.txt生成一个空的文本文件,之后去cangyan/git-emoji-template项目中把commit.template文件中的内容都复制到.zqchen_gitmessage.txt文件中。
不知道是不是Ubuntu20.04对图标显示做了新支持的原因,我这里不需要利用emojify脚本工具就可直接显示图标,于是我就没有参照原项目下载emojify。
2.2 进行 git config 的配置
git config --global commit.template /home/zqchen/.zqchen_gitmessage.txt
执行这句命令其实就是将如下内容写入到/home/zqchen/.gitconfig文件:

这样在终端中执行git commit并弹出nano编辑器后,Git工具就知道去哪里找到用户自己写的提示信息并将其显示出来了。效果如下:

3. 查阅方法:使用 gitmoji-cli 工具
Github上Gitmoji的创建者本人发起的一个完整的项目gitimoji-cli,这个项目也能实现很好的提示功能,但是功能太多还要下载npm等工具我就没有用。
4. 查阅方法:类似脚本法
后来发现hooj0/git-emoji-guide项目中的git-emoji-list.md文件作者的本意应该是这样用的(可以起到和我把它修改为一个脚本相同的功能):先将git-emoji-list.md放入PATH环境变量指向的位置,方便需要查看的时候能直接访问查看。
我选择执行sudo cp /home/zqchen/Documents/git-emoji-list.md /usr/local/bin/,把git-emoji-list.md复制一份放到/usr/local/bin/下面,因为/usr/local/一般存放的都是用户自己下载的软件之类的,如果之后自己不想要了可以放心删除。
$ alias emoji='cat /usr/local/bin/git-emoji-list.md'
$ emoji
alias命令是给一行冗长的命令起一个别名,参考ubuntu——cat和输出命令详解,发现cat命令有一个用法是直接打开一个文件(并没有进入编辑状态,是直接读取输出),效果和我上面修改成脚本的效果是一样的:

博客Ubuntu学习之alias命令提到这里的alias重启后会失效,可以通过把这条命令写入/home/user/.bashrc中达到alias永久化的目的。如果不想使用了可以unalias emoji去除这一别名。
5. 补充:在 VS Code 中直接进行 git add 和 git commit
如博客Ubuntu下git commit后会进入类似vim界面,不知道怎么操作所言,直接在Ubuntu的终端下git commit后进入的是nano编辑器的界面。其实也可以利用VS Code来完成这一系列操作。
暂不赘述,放上几个链接以供参考:
- Using Version Control in VS Code
- How To Use GitHub with VS Code in 2020 | Commit & Push | Part 1
- How To Use GitHub with VS Code in 2020 | Amazing New Feature | Part 6
6. PS:
- 我可真菜呀...别人造好了的轮子我都不会用,还要自己再造一个功能更差的轮子...
- 我的博客很啰嗦是因为我主要是给自己回忆看的(没有人看也无所谓啦,当然更希望文章可以给大家带来一些参考价值~),因为记性太差,不写详细一点根本想不起来...
- 多了解一下
Github Gist这项服务,以前没有接触过
PPS:本文同步发表于CSDN - 夏小正的鲜小海 - 使用Gitmoji进行git commit的快速查阅指南。
使用Gitmoji进行git commit的快速查阅指南的更多相关文章
- Git学习01 --git add, git commit , git log ,git status, git reset --hard, head
Git官方提供的快速入门教程:https://try.github.io/levels/1/challenges/1 特点:Git极其强大的分支管理:分布式版本 集中式版本控制系统,版本库是集中存放在 ...
- 如何写好git commit message
1.触发事件 我有这样一个版本库,里面包含两个学习用的练习项目:BookStore(以下简称BS)和PictureFriend(以下简称PF) 我在更改PF以后,未进行提交,同时又到BS中优化了一下文 ...
- 如何解决无法成功git commit 和git push
如何解决无法成功git commit 和git push 20155324王鸣宇.20155314刘子健 git add . 成功了 但是git commit无法实现. 我先尝试了卸载git 重新下载 ...
- Git Commit 标准化
1 前言Git Commit Message 应该清晰明了,要用精简的语言说明本次提交的目的,其主要作用是为了后续的搜索.版本的回滚.合并冲突的追溯等操作. 我们在开发时一直以来对 Git Commi ...
- git commit的规范
https://www.yuque.com/fe9/basic/nruxq8#6c228def 制定一个 git commit 信息的提交规范是开发团队工作流必不可少的环节.试想一下,如果查看主分支上 ...
- 优化 Git Commit Message
目前很多项目都是通过 Git 进行管理的,Git 每次提交代码的过程中 提交说明 commit message 是必须的.但仅仅必须是不够的,好的提交说明可以帮助我们提高项目的整体质量. 作用与优点 ...
- 规范git commit提交记录和版本发布记录
在开发过程中我们一般都会用到git管理代码,在git commit提交代码时我们一般对git commit message随便写点简单的描述,可是随着项目参与人数的增多,发现提交的commit记录越来 ...
- Git Commit Message 规范
今天来说说团队开发中,对于 Git commit message 规范问题. 社区上有各种 Commit message 的规范,本文介绍 Angular 规范,目前使用较广,比较合理和系统化,并且有 ...
- git分支,git commit,git流程
1. git分支命令规范 1. Master 主分支 2. Dev 开发分支 3. Feature 功能分支(例如:feature-x) 4. Release 预发布分支(例如:release-1.2 ...
随机推荐
- ApacheDubbo
一.什么是ApacheDubbo Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能.轻量级的开源 Java RPC 分布式服务框架,它提供了三大核心能力:面向接口的远 ...
- MySQL——分表,分库操作
说明 大数据量并且访问频繁的表,将其分为若干个表.如果不分的话,进行一次查询就会将表锁住,导致不能进行其他操作,故分表.表分割垂直分割应用场景:热数据放一个表里,冷数据放一个表里.冷数据使用MyIsa ...
- Linux第一个动态库
动态库一般以.so结尾,就是shared object的意思. 其基本生成步骤为 ⑴编写函数代码 ⑵编译生成动态库文件,要加上 -shared 和 -fpic 选项 , 库文件名以li ...
- SpringBoot博客开发之AOP日志处理
日志处理: 需求分析 日志处理需要记录的是: 请求的URL 访问者IP 调用的方法 传入的参数 返回的内容 上面的内容要求在控制台和日志中输出. 在学习这部分知识的时候,真的感觉收获很多,在之前Spr ...
- IDEA常用设置及推荐插件
IDEA常用设置及推荐插件 本文主要记录IDEA的一些常用设置,IDEA与Eclipse的常用快捷键对比及推荐一些好用的插件. 基本设置 设置界面风格及修改外部UI尺寸大小 打开IDEA时设置不重新打 ...
- 源码解析Spring AOP的加载与生效
本次博主主要进行Spring AOP这里的解析,因为在工作中使用后,却不知道背后的实现原理并在使用的过程中发现了一些认知缺陷,所以决定写这么一篇文章以供大家参考参考,进入正题. 本次博主使用了@Asp ...
- Java的参数传递是值传递还是引用传递?
一.前言 首先先说结论,Java中方法参数传递方式是按值传递.如果参数是基本类型,传递的是基本类型的字面量值的拷贝.如果参数是引用类型,传递的是该参量所引用的对象在堆中地址值的拷贝. 接下来深入了解一 ...
- Django的form组件——ModelForm实战
模型: from django.db import models class Book(models.Model): book_name = models.CharField(max_length=3 ...
- Docker数据映射
1.映射目录 docker run -v 2.映射文件 docker run -v
- 《DotNet Web应用单文件部署系列》二、打包wwwroot文件夹
在这篇文章中,你将学到web缓存规则,文件传输中用到的压缩格式,以及如何手写代码响应请求.最后还能学到快速打包wwwroot文件夹组件用法. 一.了解Response Header 当第一次加载程序时 ...