6.0 KiB
Emoji-Log:编写 Git 提交信息的新方法
我是一名全职开源开发人员,我喜欢称自己为“开源者”。我从事开源软件工作已经超过十年,并构建了数百个开源软件应用程序。
同时我也是不要重复自己 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"
via: https://opensource.com/article/19/2/emoji-log-git-commit-messages
作者:Ahmad Awais 选题:lujun9972 译者:MjSeven 校对:校对者ID