所以,有一個名為 pint 的可執行檔案(它是 Laravel 9 框架的一部分)。它根據 PSR12 等可配置標準格式化 PHP 檔案。無論如何,您可以將要格式化的檔案串列作為 pint 的引數傳遞,如下所示:
pint file1 file2 file3 file4 ...
如果不傳遞任何引數,則 pint 會格式化專案的所有檔案。
所以,我想要做的是我希望 pint 僅格式化自上次提交以來已更改的檔案。換句話說,我希望git diff --name-only HEAD^ HEADbash shell 中的輸出作為 pint 的引數傳遞。
所以,這是我能想到的,但遺憾的是它不起作用:
git diff --name-only HEAD^ HEAD -o /dev/stdout | ./vendor/bin/pint
其中說:fatal: /dev/stdout: '/dev/stdout' is outside repository at '/home/user/directory'然后它繼續./vendor/bin/pint正常執行,就好像沒有傳遞任何引數一樣。
我想我應該在將其傳遞給品脫之前以某種方式轉換new line為space,但我不確定。
uj5u.com熱心網友回復:
|用于管道到標準輸入,但pint期望檔案名是命令列引數,而不是標準輸入。
用于$(...)將命令的輸出替換為命令列。
./vendor/bin/pint $(git diff --name-only HEAD^ HEAD)
請注意,如果任何檔案名包含空格,這將不起作用,因為空格將被視為檔案名分隔符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/524799.html
標籤:重击
下一篇:從蛋酒映射器輸出制作KO注釋表
