今天這篇文章探討的是 Git 的 pre-commit hook 系統,透過這種 pre-commit 的系統,能夠幫助開發者與本地開發時,先行進行一些處理,避免什麼問題都要丟到遠方的 CI/CD pipeline 去檢查。畢竟程式碼更新,觸發 CI/CD 流程,等待結果告知,這部分有時候都要花上數分鐘,往往就是檢查到一個格式錯誤,譬如拼字錯誤,多一個空白,格式錯誤等。
如果今天可以將一些常用的檢查給複製一份到本地端去執行,這樣開發者可以更快地找出錯誤,同時也可以節省很多等待的時間,因此本篇文章就要針對 git pre-commit hook 來介紹。
本篇文章要介紹的並不是直接使用 git 的 pre-commit hook,而是要使用 python 的套件 git pre-commit hook,其龐大的生態系可以幫助使用者輕鬆的使用常見的 yaml 格式來管理 git 本身的 pre-commit hook。舉例來說,可以於專案底下放置一個有下列內容的檔案
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
透過 python 的 pre-commit hook 系統,會將其中描述的四個功能 (trailing-whitespace....check-added-large-files)實際的程式碼給轉換並且安裝到 .git/hooks/pre-commit 底下。
同時透過這種框架,開發者也可以自行開發屬於自己的 pre-commit hook並整合到該 yaml 檔案之中。整個使用的方式非常簡單
1. 透過 python 的方式安裝 git pre-commit
2. 準備一個名為 .pre-commit-config.yaml 的檔案,並且描述你希望使用的 hook
3. 透過 pre-commit install 的方式將該 yaml 的內容轉換為真正 git 所使用的內容
4. 可以開始透過 git commit 來幫助你進行本地檢查囉
如果對於提升本地開發效率有興趣的人,不要錯過研究看看 git pre-commit 這種機制,不論是直接撰寫 git 或是透過這種 python 的 git pre-commit 框架,只要能夠幫忙解決相關問題,提升效率就會是一個值得研究的方法。
更多的 hook 參考以及該框架介紹,請點選下列全文來觀賞囉
https://towardsdatascience.com/pre-commit-hooks-you-must-know-ff247f5feb7e
git hooks 在 軟體開發學習資訊分享 Facebook 八卦
知名的 Git GUI 前端工具 GitKraken 釋出了最新版,主要是支援 Git hooks
▶Udemy 也有一堂針對 GitKraken 的線上課程 https://goo.gl/xftijn
https://blog.axosoft.com/2017/04/03/gitkraken-v2-3/
git hooks 在 軟體開發學習資訊分享 Facebook 八卦
開源報報精彩內容回顧
✅ 機器學習系統設計
✅ 系統設計與架構
✅ 學習 OpenGL
✅ 線性代數互動電子書
✅ 演算法第四版的程式碼
✅ 用於建構快速和可擴充 React 資料表格的 Hooks
✅ 一個使用 Swift 編寫快速靈活的 Markdown 解析器
✅ 一個讓你的臉跟著指標移動的 Javascript 程式庫
✅ 一個可擴展的、搜尋引擎增強平台,用於部署 transformer 模型,以提高不同平台上搜索結果的相關性
✅ 網頁應用程式強化控制
✅ 執行端到端的功能性網路測試,測試可達性、延遲和資料包丟失
✅ 從配置到部署,用來建立一個完整的基礎設施程式碼(IaC)儲存庫的樣板
✅ 週期性地殺死 Kubernetes 叢集中的隨機 pods
✅ 可用來簡化 Android 的 Activities, Fragments, Threads, Services,等之間的通訊程式庫
✅ Rust 的跨平台 GUI 程式庫 ,靈感來自 Elm
✅ 在地圖上顯示熱度圖 ( Heatmap )
✅ 透過 GitHub Gist 來做跨多台電腦的 VS Code 的設定同步
✅ 比較人性化的 Git 指令
✅ 使用一個命令中將資料移轉到 PostgreSQL
✅ 使用 Python 實現機器人演算法的範例程式碼 ( 特別用於自動導航 )
https://softnshare.com/opensource-news-007-machine-learnin…/
git hooks 在 維持團隊開發程式碼品質的好工具— Git Hooks & Husky - Medium 的相關結果
最近在開發的時候,有用到一些git hooks,也有遇過要寫很複雜的git hook script 情況,趁有時間來紀錄一下,順便加強自己對git hooks 的認識。 ... <看更多>
git hooks 在 使用Git Hooks 驗證local commit 資料| 程式碼學習不歸路 - 點部落 的相關結果
如果團隊要求在git commit message 必須要遵守一定的規範時,似乎只能透過默契或事後來達到這件事。透過git 所提供的hook,可以在開發者. ... <看更多>
git hooks 在 Git Hooks 的相關結果
Like many other Version Control Systems, Git has a way to fire off custom scripts when certain important actions occur. There are two groups of these hooks: ... ... <看更多>