install_hooks.sh / install_hooks.ps1¶
文档编写日期: 2026-03-20
使用办法 (Usage)¶
基本语法¶
# Linux/macOS
bash scripts/release/hooks/install_hooks.sh
# Windows PowerShell
.\scripts\release\hooks\install_hooks.ps1
Scripts详解¶
脚本用途¶
自动安装Git钩子到.git/hooks/目录。
安装的钩子¶
- pre-commit: 代码格式检查(所有分支)
- pre-push: Docker构建验证(仅 main 和 release 分支)
特性¶
- 自动备份现有钩子: 对于非CFDesktop钩子,自动备份为
.backup.YYYYMMDDHHMMSS格式 - 智能覆盖: 检测已安装的CFDesktop钩子,直接覆盖无需备份
- 交互式确认: 安装前需用户确认
- 彩色输出: 使用ANSI颜色码提供清晰的状态反馈
颜色输出说明¶
| 颜色 | 用途 |
|---|---|
| 蓝色 (>>> ) | 信息提示 |
| 绿色 (✓) | 成功操作 |
| 黄色 (⚠) | 警告信息 |
| 红色 (✗) | 错误信息 |
路径解析¶
脚本自动从当前位置解析:
- 脚本目录: scripts/release/hooks/
- 项目根目录: 向上3级目录
- 钩子目标: .git/hooks/
卸载方法¶
# Linux/macOS
rm .git/hooks/pre-commit .git/hooks/pre-push
# Windows PowerShell
Remove-Item .git\hooks\pre-commit, .git\hooks\pre-push
验证安装¶
# Linux/macOS
ls -la .git/hooks/pre-commit .git/hooks/pre-push
# Windows PowerShell
dir .git\hooks\pre-*
相关文件¶
/home/charliechen/CFDesktop/scripts/release/hooks/install_hooks.sh/home/charliechen/CFDesktop/scripts/release/hooks/install_hooks.ps1/home/charliechen/CFDesktop/scripts/release/hooks/pre-commit.sample/home/charliechen/CFDesktop/scripts/release/hooks/pre-push.sample