Emoji-Log:编写 Git 提交信息的新方法
创始人
2024-03-02 02:06:10
0

使用 Emoji-Log 为你的提交添加上下文。

我是一名全职的开源开发人员,我喜欢称自己为“开源者”。我从事开源软件工作已经超过十年,并构建了数以百计的开源软件应用程序。

同时我也是“ 避免重复工作 Don’t Repeat Yourself ”(DRY)哲学的忠实粉丝,并且我相信编写更好的 Git 提交消息是 DRY 的一个重要组成部分。它们具有足够的上下文关联,可以作为你开源软件的变更日志。我编写的众多工作流之一是 Emoji-Log,它是一个简单易用的开源 Git 提交日志标准。它通过使用表情符号来创建更好的 Git 提交消息,从而改善了开发人员的体验(DX)。

我使用 Emoji-Log 构建了 VSCode Tips & Tricks 仓库 和我的 ? 紫色 VSCode 主题仓库,以及一个看起来很漂亮的自动变更日志

Emoji-Log 的哲学

我喜欢(很多)表情符号,我很喜欢它们。编程、代码、极客/书呆子、开源……所有这一切本质上都很枯燥,有时甚至很无聊。表情符号帮助我添加颜色和情感。想要将感受添加到这个 2D 的、平板的、基于文本的代码世界并没有错。

相比于数百个表情符号,我学会的更好办法是让类别较小和普遍性。以下是指导使用 Emoji-Log 编写提交信息的原则:

  • 必要的
    • Git 提交信息是必要的。
    • 像下订单一样编写提交信息。
      • 例如,使用 ✅ Add 而不是 ❌ Added
      • 例如,使用 ✅ Create 而不是 ❌ Creating
  • 规则
    • 少数类别易于记忆。
    • 不多也不少
      • 例如 ? NEW? IMPROVE? FIX? DOC? RELEASE✅ TEST
  • 行为
    • 让 Git 的提交基于你所采取的操作
    • 使用像 VSCode 这样的编辑器来提交带有提交信息的正确文件。

编写提交信息

仅使用以下 Git 提交信息。简单而小巧的占地面积是 Emoji-Log 的核心。

  • ? NEW: 必要的信息
    • 当你添加一些全新的东西时使用。
      • 例如 ? NEW: 添加 Git 忽略的文件
  • ? IMPROVE: 必要的信息
    • 用于改进/增强代码段,如重构等。
      • 例如 ? IMPROVE: 远程 IP API 函数
  • ? FIX: 必要的信息
    • 修复 bug 时使用,不用解释了吧?
      • 例如 ? FIX: Case converter
  • ? DOC: 必要的信息
    • 添加文档时使用,比如 README.md 甚至是内联文档。
      • 例如 ? DOC: API 接口教程
  • ? RELEASE: 必要的信息
    • 发布新版本时使用。例如, ? RELEASE: Version 2.0.0
  • ✅ TEST: 必要的信息
    • 发布新版本时使用。
      • 例如 ✅ TEST: 模拟用户登录/注销

就这些了,不多不少。

Emoji-Log 函数

为了快速构建原型,我写了以下函数,你可以将它们添加到 .bashrc 或者 .zshrc 文件中以快速使用 Emoji-Log。

#.# Better Git Logs.

### Using EMOJI-LOG (https://github.com/ahmadawais/Emoji-Log).

# Git Commit, Add all and Push — in one step.

function gcap() {
    git add . && git commit -m "$*" && git push
}

# NEW.
function gnew() {
    gcap "? NEW: $@"
}

# IMPROVE.
function gimp() {
    gcap "? IMPROVE: $@"
}

# FIX.
function gfix() {
    gcap "? FIX: $@"
}

# RELEASE.
function grlz() {
    gcap "? RELEASE: $@"
}

# DOC.
function gdoc() {
    gcap "? DOC: $@"
}

# TEST.
function gtst() {
    gcap "✅ TEST: $@"
}

要为 fish shell 安装这些函数,运行以下命令:

function gcap; git add .; and git commit -m "$argv"; and git push; end;
function gnew; gcap "? NEW: $argv"; end
function gimp; gcap "? IMPROVE: $argv"; end;
function gfix; gcap "? FIX: $argv"; end;
function grlz; gcap "? RELEASE: $argv"; end;
function gdoc; gcap "? DOC: $argv"; end;
function gtst; gcap "✅ TEST: $argv"; end;
funcsave gcap
funcsave gnew
funcsave gimp
funcsave gfix
funcsave grlz
funcsave gdoc
funcsave gtst

如果你愿意,可以将这些别名直接粘贴到 ~/.gitconfig 文件:

# Git Commit, Add all and Push — in one step.
cap = "!f() { git add .; git commit -m \"$@\"; git push; }; f"

# NEW.
new = "!f() { git cap \"? NEW: $@\"; }; f"
# IMPROVE.
imp = "!f() { git cap \"? IMPROVE: $@\"; }; f"
# FIX.
fix = "!f() { git cap \"? FIX: $@\"; }; f"
# RELEASE.
rlz = "!f() { git cap \"? RELEASE: $@\"; }; f"
# DOC.
doc = "!f() { git cap \"? DOC: $@\"; }; f"
# TEST.
tst = "!f() { git cap \"✅ TEST: $@\"; }; f"

Emoji-Log 例子

这里列出了一些使用 Emoji-Log 的仓库:

你呢?如果你的仓库使用 Emoji-Log,请将这个 Emoji-Log 徽章放到你的 README 中,并给我发送一个拉取请求,以让我可以将你的仓库列在这里。


via: https://opensource.com/article/19/2/emoji-log-git-commit-messages

作者:Ahmad Awais 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

北京人形机器人创新中心发布...
IT之家 7 月 7 日消息,IT之家从北京人形机器人创新中心官方...
2025-07-07 22:14:23
音画同步,AI视频也能有完...
机器之心报道 编辑:泽南 AI 生成的「最后一道关卡」已经突破...
2025-06-27 22:12:41
银河通用X清华大学发布首款...
该论文由清华大学与北京银河通用机器人有限公司合作完成。论文的共同第...
2025-06-12 17:11:39
【Git】pull 分支报...
报错消息 示例图: 示例代码: ➜ ...
2025-06-01 18:31:43
使用IDEA把项目上传到g...
使用IDEA把项目上传到gitee仓库在gitee上建立一个仓库第...
2025-06-01 17:15:00
本地新建项目如何推送到远程...
我本地新建了一个vue项目,想推送到远程的gitla...
2025-05-31 23:03:33

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...