簡體   English   中英

在預提交掛鈎中,有沒有辦法驗證結帳文件夾的“提交后狀態”?

[英]In a pre-commit-hook is there a way to validate the "state after commit" of the checkout folder?

我想在pre-commit掛鈎中運行 static 檢查(例如mypypylint )。 由於未暫存的更改和未跟蹤的文件,我當前的幼稚方法(僅在pre-commit掛鈎中運行這些檢查)給了我誤報和誤報。

所以我真正想做的是輕松創建提交,通過隱藏未暫存和未跟蹤的本地更改來清理工作區,然后運行測試。

當然我可以為此創建一個別名以使事情變得更容易,但是這樣我就不能再直接git commit (我還必須共享 git 配置文件)。

我也可以使用pre-commit掛鈎,但我看不到允許git commit -m"foo" file1 file2 (即提供文件名而不是之前暫存所有更改)的方法。

是否有一種預期的(甚至是內置的)方法來檢查“提交后的 state,不包括本地修改(未跟蹤和未暫存)”適用於

git commit -m"foo" file1 file2

提交掛鈎編寫器負責查詢索引而不是沙箱中的文件。 這一切都是可行的,但有些棘手。 幸運的是,這一切都已經完成了。

Python 模塊預提交將為您存儲未暫存的更改,運行您在配置文件中請求的所有掛鈎,然后將存儲彈出。

參考: https://pre-commit.com/

如果您正在使用 Node,用 JS 編寫的一個很好的替代方案是 Husky。 它實現了許多 Git 掛鈎,並且非常容易地集成到任何 Node 項目中。

參考: https://typicode.github.io/husky

您可以將這些工具中的任何一個與任何語言的項目一起使用,但最容易匹配語言,因為預提交可以在您的requirements.dev.txt中,而 husky 可以在您的package.json中,因此它們可以與您的開發環境的 rest 一起安裝,只需最少的額外的依賴。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM