簡體   English   中英

在將文件添加到暫存區之前運行 git 掛鈎

[英]run git hook before adding files to staging area

我有一個使用 prettier 進行格式化的項目。 我希望我的遠程代碼存儲庫具有格式一致的文件。 出於這個原因,我在package.json文件中添加了一個腳本,它將在一行命令中格式化整個代碼庫( npm run format

包.json 文件

這行得通! 但問題是我有時可能會忘記在git push送到遠程存儲庫之前格式化我的代碼。 為了格式化代碼,我不同意用不必要的提交來弄亂我的 git 歷史記錄。

我決定自動化並選擇git 掛鈎,它將使用以下命令格式化我的代碼庫: npm run format 但我似乎沒有為我的用例找到 git 掛鈎。

是否有可以在暫存文件之前運行的鈎子?

沒有這樣的 Git 掛鈎。 但是,如果要處理格式,您有兩個選擇。

一種是在提交之前使用pre-commit掛鈎來檢查您的文件。 這不會阻止您添加它們,但會阻止您提交它們。 但是,如果您使用一些使用許多臨時和修復提交的高級工作流程, pre-commit掛鈎可能會非常繁重。

另一種選擇是使用干凈的過濾器。 您可以在.git/info/attributes文件中創建一個模式,如下所示:

src/**/*.js filter=prettier

然后您可以將以下內容添加到.git/config

[filter "prettier"]
smudge = cat
clean = "YOUR-PRETTIER-COMMAND-HERE"

您可以將YOUR-PRETTIER-COMMAND-HERE替換為從標准輸入讀取文件並以適當格式將其寫入標准 output 的命令。 (不可能使用在文件系統上就地格式化的程序。)在運行 git 時,將通過該過濾器自動運行 JavaScript 文件,並以正確的格式將它們git add並存儲在存儲庫中。

暫無
暫無

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

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