husky 7.x 使用

我為什么想用 husky?

我想再提交代碼的時候將我項目的一個文件拷貝一份然后一起提交,所以我需要在 commit 之前執(zhí)行該操作,然后將拷貝后的文件也一起git add到我的項目中,然后一起 commit,那么什么東西是可以監(jiān)聽到我的 commit 操作的呢?并且還可以在 commit 之前先執(zhí)行一些自定義的操作?然后我的腦子里就閃現了 husky 這個工具 ??

husky 是什么?

Husky 是一種工具:讓我們可以輕松地接入 Git hooks ,并在我們需要的某些階段運行腳本。

git hooks 又是什么?

Git hooks 是可以設置在 Git 生命周期的在某些事件下運行的腳本。 這些事件包括提交的不同階段,例如在提交之前(pre-commit,提交之后(post-commit)。

這些功能非常有用,因為它們允許開發(fā)人員運行自定義代碼任務,甚至運行其他自動化腳本來執(zhí)行合適的代碼規(guī)范及標準。

那么怎么用?

husky 7 的初始化推薦用他們官方提供的姿勢,放到 prepare scripts 中。

安裝

yarn add husky -D

修改 package.json

{
  "script": {
    "prepare": "husky install",
    "cp": "node cp.js"
  }
}

執(zhí)行一下 prepare 腳本

npm run prepare

添加 hook

npx husky add .husky/pre-commit "npm run cp && git add ."

注意:我這里用的是 && 而不是 &,因為我發(fā)現我使用 & 的時候 cp.js 腳本執(zhí)行完畢之后我的終端并不會退出 ??♀?

執(zhí)行 git 操作

git add .husky/pre-commit
git commit -m 'ADD: husky pre-commit hook'

效果

執(zhí)行了我的cp.js文件(這個文件里面的代碼就是實現我前面所說的復制文件的功能)并且將新生成的 copy 后的新文件也 add 進來一起提交。

注意 ??:如果這里沒有執(zhí)行git add .則每次執(zhí)行完cp.js后修改的文件都不會被提交進來,導致我們每次提交完代碼之后都有一個修改的文件還在工作區(qū),但是這不是我想要的。我希望的是:執(zhí)行完cp.js腳本后生成/修改的文件都可以算在本次提交內一起提交,所以我需要在我的pre-commit的 hooks 里面&& git add .這樣在執(zhí)行git commit的時候就可以一起提交了 ??

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容