一个自动交互的预提交清单,类似信息广告风格。什么是预提交钩子?如何获取预提交清单?拿我的钱去吧!

2025-05-28

一个自动交互式的预提交清单,类似信息广告的形式

什么是预提交钩子?

我如何获得预先提交的清单?

拿走我的钱!

你说那是什么?你已经厌倦了那些老掉牙的纸质清单?好吧,我的朋友,今天是你的幸运日!你,没错,就是你,可以自豪地拥有一个全新的自动交互式预提交钩子清单!你一定会爱上它!你的生活会变得轻松很多!等着你的朋友们看到你就知道了。

什么是预提交钩子?

你知道吗?几乎五分之一的程序员都羞于问这个问题。别担心,这很正常。在接下来的60秒里,我们会告诉你所有你需要知道的事情,让你能够自信地预先承诺。

Git钩子是 Git 的一项功能,可以在需要的时候触发自定义脚本。它们可以用于各种用途,帮助你实现工作自动化,而且最重要的是,你已经拥有它们了!在你使用 初始化的每个仓库中git init,你都会有一组示例脚本.git/hooks。它们都以 结尾.sample,激活它们就像重命名文件并删除相应.sample部分一样简单。

克隆存储库时不会复制 Git 钩子,因此您可以根据需要将其设置为个性化。

今天我们要讨论的一个特别有用的时刻是pre-commit。这个钩子在你执行 之后、编写提交信息之前运行git commit。以非零状态退出此钩子将中止提交,这对于最后一刻的质量检查非常有用。或者,也有点意思。何不两者兼顾呢!

我如何获得预先提交的清单?

我只想为我的家人和我的提交做好最好的准备,所以我选择了一个交互式的提交前检查清单。它不仅使用起来很有趣,还能帮助我避免意外的不规范错误!

太简单了!我只需要写一个可以读取用户输入的 Bash 脚本,然后把它拖进.git/hooks一个名为 的文件中pre-commit。然后我chmod +x .git/hooks/pre-commit让它可执行,就大功告成了!

哦,看,现在有一个示例 bash 脚本!

#!/bin/sh

echo "Would you like to play a game?"

# Read user input, assign stdin to keyboard
exec < /dev/tty

while read -p "Have you double checked that only relevant files were added? (Y/n) " yn; do
    case $yn in
        [Yy] ) break;;
        [Nn] ) echo "Please ensure the right files were added!"; exit 1;;
        * ) echo "Please answer y (yes) or n (no):" && continue;
    esac
done
while read -p "Has the documentation been updated? (Y/n) " yn; do
    case $yn in
        [Yy] ) break;;
        [Nn] ) echo "Please add or update the docs!"; exit 1;;
        * ) echo "Please answer y (yes) or n (no):" && continue;
    esac
done
while read -p "Do you know which issue or PR numbers to reference? (Y/n) " yn; do
    case $yn in
        [Yy] ) break;;
        [Nn] ) echo "Better go check those tracking numbers!"; exit 1;;
        * ) echo "Please answer y (yes) or n (no):" && continue;
    esac
done

exec <&-
Enter fullscreen mode Exit fullscreen mode

拿走我的钱!

别犹豫!立即抓住这个一次性的优惠!今天就能免费获得一份交互式的预提交钩子清单!价格超低……免费?等等,这脚本是谁写的?

文章来源:https://dev.to/victoria/an-automatic-interactive-pre-commit-checklist-in-the-style-of-infomercials-14i7
PREV
勇敢地公开建设
NEXT
Git 压缩提交快速指南 方法 1:一次提交即可统治主分支 方法 2:没那么多! 方法 3:挑剔