Git提交文件之前強制對php文件進行格式化

要執(zhí)行這個操作需要掌握兩個知識點

  1. php語法檢查工具php-cs-fixer(使用方法自行百度)。
  2. git鉤子的使用方法(如果不懂就繼續(xù)百度吧)。

具體操作方式:

  1. 在一個git項目的根目錄下進入鉤子目錄編輯提交之前的鉤子文件
cd .git/hooks

大約能看到以下幾個鉤子文件,是git提供的一些例子。去掉.sample后綴名之后都可以運行。

├── applypatch-msg.sample  
├── commit-msg.sample
├── post-update.sample
├── pre-applypatch.sample
├── pre-commit.sample
├── pre-push.sample
├── pre-rebase.sample
├── pre-receive.sample
├── prepare-commit-msg.sample
└── update.sample

在文件列表中,pre-commit.sample 文件就是執(zhí)行 git commit命令之前的鉤子文件。系統(tǒng)會先調用此文件,我們就在這個文件里面處理那些已經(jīng)被add到暫存區(qū)的php文件。

1. 在當前目錄創(chuàng)建一個pre-commit文件,并將以下代碼復制進去,并保存。

#!/usr/bin/env bash
 
while read -r file;
do
  file=${file:1}

  #只處理后綴名為.php的文件
  if [[ $file = *.php ]];
  then
      #執(zhí)行語法檢查并將不符合php代碼規(guī)范的文件執(zhí)行強轉
      php-cs-fixer fix $file;

      #重新執(zhí)行git命令,將強轉之后的文件重新加入到緩存區(qū)
      git add $file;
  fi
done < <(git diff --cached --name-status --diff-filter=ACM)

#執(zhí)行完成,退出此腳本
exit 0

注意:php-cs-fixer命令需要配置好全局變量,否則的話,請寫全路徑,避免找不到php-cs-fixer命令而報錯

然后,我們再執(zhí)行git提交命令的時候,就會把php文件全部執(zhí)行一遍格式轉化然后再提交啦。
git commit -m 'xxxxxxxxxxx'

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容