x githook
Git Hooks 管理
介紹
使用 yml 聲明式配置文件管理項目 Git Hooks。
Git Hooks:是指可定義在運行 git 操作時所觸發的自定義腳本,例如在提交前運行腳本對代碼風格,數據格式類型等進行檢查。
我們在開發 gitconfig 模組中,注意到在不同語言領域中管理 Git Hooks 的方式都不一樣,例如 Node 的 husky,Python 的 pre-commit 等,而這些工具的都對語言運行時有所依賴且配置方式以及使用方式都有所不同。
在這個背景下,我們將 Git Hooks 的管理從 gitconfig 模組中抽取出來,創建了 githook 模組。該模組旨在提供一種更通用且便捷的方式來管理 Git Hooks,無需額外下載依賴包,開箱即用的 Git Hooks 管理工具。
使用方式
- 在項目根路徑創建聲明式配置文件
.x-cmd/git/hook.yml - 編寫 Git Hooks 命令於配置之中
pre-commit: echo "pre-commit"
post-commit: |
echo "post-commit-1"
echo "post-commit-2"- 運行命令進行變更應用
x githook apply
自動 apply 配置
項目中如果運行了第一次 x githook apply 或 x gitconfig apply 命令進行配置應用後。此後如果對 hook 配置進行了變更,在觸發 hook 前會對配置文件的改動時間進行比較,進而更新 hook 配置改動。
INFO
出於對 hook 的啓動和運行效率的考慮,hook 觸發環境中是不會加載 x-cmd。
如果想要在 hook 環境中使用 x, 可以使用以下的加載方式
pre-commit: |
. "$HOME/.x-cmd.root/X"
x cowsay "pre-commit"clone 倉庫後進行配置
在使用 x git clone, x gh cl, x gt cl 等 x-cmd git 系列 CLI 進行項目克隆後,會觸發一次 apply 應用配置。
子命令
| 名称 | 描述 |
|---|---|
| x githook apply | 根據 githook yml 配置文件,在當前的 .git 目錄下生成 githook 執行文件,並在當前 git 倉庫中激活 |
| x githook clear | 清除 hooks 文件並取消配置 |
x githook apply
根據 githook yml 配置文件,在當前的 .git 目錄下生成 githook 執行文件,並在當前 git 倉庫中激活
- 使用:
x githook apply <#1>- 参数:
| 参数 | 描述 |
|---|---|
#1 | 用户可指定 githook yml 配置文件的路徑。默認為 .x-cmd/git/hook.yml |
x githook clear
清除 hooks 文件並取消配置
- 使用:
x githook clear <#1>- 参数:
| 参数 | 描述 |
|---|---|
#1 | 用户可指定 目標 hooks 清除目錄. 默認 .git/.x-cmd/hooks |
TIP
在交互式终端中(如 zsh, bash ...),可以使用 Tab 获取补全信息
运行 CMD SUBCOMMAND --help 可以获取命令的更多信息
幫助我們改善文檔
X-CMD 的文檔內容來自命令的幫助文檔、多個數據源以及文檔庫生成。文檔中如果有錯誤或不明確的地方,歡迎通過這些方式進行告知~
完成验证加入微信群