使用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 ...
随机推荐
- 安装RHEL7配置本地yum源 -- yum不能安装时,在本地安装,亲测成功
RHEL7 本地yum源配置我们在安装Redhat的时候一般都不会填写注册信息,因为该产品是要购买的,所以我们在使用安装好的Redhat时有的功能是受限的,使用yum源install就是其中之一.那么 ...
- uniapp封装小程序雷达图组件实现
效果图: view <canvas id="radar-canvas" class="radar-canvas" type="2d"& ...
- mpvue学习笔记
坑一: 挂载在Vue.prototype上的属性,在模板语法里面是undefined,必须经过computed计算过一下才能用. 坑二: 关于生命周期钩子 因为小程序的历史页面不会销毁,所以在生命周期 ...
- C# 调用DOS 命令
class NetWorkDeviceInfo { public static string GetDeviceInfo() { System.Diagnostics.Process p = new ...
- .Net Core NPOI读取Excel 并转为数据实体类
创建应用程序 这里直接创建Console程序 引用NPOI的NuGet包 PM> Install-Package NPOI -Version 2.5.1 直接Nuget包管理器添加 导入Exce ...
- hive简单数据分析
简单查询分析 select brand_id from user_log limit 10; -- 查看日志前10数据 好像也没啥,和SQL相同,,limit取前多少条 , as取别名 查询条数统计 ...
- js之window对象(慕课网学习笔记)
javaScript定义了一个变量一个函数都会变成window中的一个成员 var a=1; alert(window.a) //会输出a的值 window基础 创建窗口.调整窗口.移动窗口.关闭窗口 ...
- MAC下Jetbrains编译器无法打开问题解决
这段时间不知道怎么回事,每次打开Rider必定闪退,毫无头绪,只好暂时放弃使用Rider,试用了一段时间Visual Studio. 可惜...虽然大学时候觉得VS天下第一,但是用惯了JB的编译器,再 ...
- 阿里云(CentOS)搭建MediaWiki
搭建环境 系统:CentOS 7.3 PHP:5.4.16 Mysql:maria MediaWiki:1.26.4(更高版本不再支持PHP5.4) 下面我们开始安装LAMP环境: 1.安装Apach ...
- Jenkins手动下载并安装插件
最近遇到Jenkins插件无法自动安装的问题,在插件管理页面的[升级站点]使用镜像url也无法解决.于是决定手动下载并安装Jenkins插件,具体步骤如下. Step1:进入Jenkins官网的插件下 ...