今天這篇文章探討的是 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 的最讚貼文
開源報報精彩內容回顧
✅ 機器學習系統設計
✅ 系統設計與架構
✅ 學習 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使用 在 一种使用CocoaPods 同步Git hooks 的方案 的推薦與評價
Git hooks 是什么Git hooks 是一段脚本,可以在Git 执行某些操作之前或者之后执行,比如说commit , push 或者receive 。随便打开某个Git 项目的目录, ... ... <看更多>
git hooks使用 在 liubin303/GitHooksScript: 使用GitHook机制在提交代码时对 ... 的推薦與評價
服务器端的hooks我们没有办法利用,只能利用Git的客户端钩子功能,在本地commit或push时执行自定义脚本,对提交的改动做检查,防止逻辑错误或不合规范的代码更新到远端仓库 ... ... <看更多>