前言

大家应该都知道用表情符号规范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的提示的。

该方法的另外两个参考来源如下:

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 工具

GithubGitmoji的创建者本人发起的一个完整的项目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来完成这一系列操作。

暂不赘述,放上几个链接以供参考:

6. PS:

  • 我可真菜呀...别人造好了的轮子我都不会用,还要自己再造一个功能更差的轮子...
  • 我的博客很啰嗦是因为我主要是给自己回忆看的(没有人看也无所谓啦,当然更希望文章可以给大家带来一些参考价值~),因为记性太差,不写详细一点根本想不起来...
  • 多了解一下Github Gist这项服务,以前没有接触过

PPS:本文同步发表于CSDN - 夏小正的鲜小海 - 使用Gitmoji进行git commit的快速查阅指南

使用Gitmoji进行git commit的快速查阅指南的更多相关文章

  1. Git学习01 --git add, git commit , git log ,git status, git reset --hard, head

    Git官方提供的快速入门教程:https://try.github.io/levels/1/challenges/1 特点:Git极其强大的分支管理:分布式版本 集中式版本控制系统,版本库是集中存放在 ...

  2. 如何写好git commit message

    1.触发事件 我有这样一个版本库,里面包含两个学习用的练习项目:BookStore(以下简称BS)和PictureFriend(以下简称PF) 我在更改PF以后,未进行提交,同时又到BS中优化了一下文 ...

  3. 如何解决无法成功git commit 和git push

    如何解决无法成功git commit 和git push 20155324王鸣宇.20155314刘子健 git add . 成功了 但是git commit无法实现. 我先尝试了卸载git 重新下载 ...

  4. Git Commit 标准化

    1 前言Git Commit Message 应该清晰明了,要用精简的语言说明本次提交的目的,其主要作用是为了后续的搜索.版本的回滚.合并冲突的追溯等操作. 我们在开发时一直以来对 Git Commi ...

  5. git commit的规范

    https://www.yuque.com/fe9/basic/nruxq8#6c228def 制定一个 git commit 信息的提交规范是开发团队工作流必不可少的环节.试想一下,如果查看主分支上 ...

  6. 优化 Git Commit Message

    目前很多项目都是通过 Git 进行管理的,Git 每次提交代码的过程中 提交说明 commit message 是必须的.但仅仅必须是不够的,好的提交说明可以帮助我们提高项目的整体质量. 作用与优点 ...

  7. 规范git commit提交记录和版本发布记录

    在开发过程中我们一般都会用到git管理代码,在git commit提交代码时我们一般对git commit message随便写点简单的描述,可是随着项目参与人数的增多,发现提交的commit记录越来 ...

  8. Git Commit Message 规范

    今天来说说团队开发中,对于 Git commit message 规范问题. 社区上有各种 Commit message 的规范,本文介绍 Angular 规范,目前使用较广,比较合理和系统化,并且有 ...

  9. git分支,git commit,git流程

    1. git分支命令规范 1. Master 主分支 2. Dev 开发分支 3. Feature 功能分支(例如:feature-x) 4. Release 预发布分支(例如:release-1.2 ...

随机推荐

  1. luogu P6239 奇怪的道路

    奇怪的道路 我看不出来是状压的状压 好吧,其实看到k的范围应该去往状压方面想的. 然后,题目中说"任何一个城市都与恰好偶数条道路相连(0也被认为是偶数)". 所以,奇偶,两种状态可 ...

  2. NOIP 模拟 9 数颜色

    题解 一道裸的数据结构题 正解是排序 \(+\) 二分,但是这怎么能有动态开点线段树好写呢? 于是我就打了暴力,骗了五十分. 对于每种颜色,我们在下标上开一颗线段树,对于交换若颜色相同则跳过,否则直接 ...

  3. 【springboot】整合 MyBatis

    转自:https://blog.csdn.net/cp026la/article/details/86493503 1. 简介: 目前,国内大部分公司都使用 MyBatis作为持久层框架.本章整合My ...

  4. C++继承体系中的内存分段

    ---------------综述与目录-------------- 讨论这个问题之前我们先明确类的结构,一个类的大概组成,下面的很多分类名词都是我个人杜撰,为的就是让读者看懂能够区分,下面分别分类: ...

  5. mybatis面试题总结

    1.什么是MyBatis? 答:MyBatis是一个可以自定义SQL.存储过程和高级映射的持久层框架. 2.讲下MyBatis的缓存 答:MyBatis的缓存分为一级缓存和二级缓存,一级缓存放在ses ...

  6. 转:C语言自增自減问题总结

    C语言自增自減问题总结 在程序设计中,经常遇到"i=i+1"和"i=i-1"这两种极为常用的操作.C语言为这种操作提供了两个更为简洁的运算符,即++和--,分别 ...

  7. 并发编程之:synchronized

    大家好,我是小黑,一个在互联网苟且偷生的农民工. 之前的文章中跟大家分享了关于Java中线程的一些概念和基本的使用方法,比如如何在Java中启动一个线程,生产者消费者模式等,以及如果要保证并发情况下多 ...

  8. 战胜了所有对手,却输给了时代。MVVM--jQuery永远的痛。

    前言 第二次浏览器战争中,随着以 Firefox 和 Opera 为首的 W3C 阵营与 IE 对抗程度的加剧,浏览器碎片化问题越来越严重,不同的浏览器执行不同的标准,对于开发人员来说这是一个恶梦.为 ...

  9. MySQL-存储引擎-MERGE

    MERGE存储引擎是一组Myisam表的组合,这些Myisam表必须结构完全相同,MERGE表本身并没有数据,对MERGE类型的表可以进行查询.更新.删除操作,这些操作实际上是对内部的Myisam表进 ...

  10. Tomcat 端口配置及原理详解

    1. tomcat 文件配置详细说明 tomcat服务器需配置三个端口才能启动,安装时默认启用了这三个端口,当要运行多个tomcat服务时需要修改这三个端口,不能相同.端口配置路径为tomcat\ c ...