Git Hooks + Spacecommander 讓你的代碼更規(guī)范

Git Hooks

如同其他許多的版本控制系統(tǒng)一樣,Git 也具有在特定事件發(fā)生之前或之后執(zhí)行特定腳本代碼功能(從概念上類比,就與監(jiān)聽(tīng)事件、觸發(fā)器之類的東西類似)。Git Hooks 就是那些在Git執(zhí)行特定事件(如commit、push、receive等)后觸發(fā)運(yùn)行的腳本。
至于怎么執(zhí)行哪些腳本文件,又是在何時(shí)觸發(fā)這些腳本文件的,請(qǐng)參考這篇博文,里面寫的很詳細(xì)

Clang Format

Clang Format 是一個(gè)xcode可以安裝的插件,但是,在xcode9以后就已經(jīng)無(wú)法使用了,現(xiàn)在你可以使用XcodeClangFormat,不過(guò)這個(gè)不能像之前一樣在保存的時(shí)候自動(dòng)格式化。也是,使用Git Hooks + Spacecommander 的方式可以實(shí)現(xiàn)讓你的git 倉(cāng)庫(kù)規(guī)范起來(lái)。

操作步驟

step1:cd project// 到你的項(xiàng)目根目錄
step2:git clone https://github.com/square/spacecommander.git
step3: 執(zhí)行:/Users/xavior/desktop/HooksDemo/spacecommander/setup-repo.sh

你可以看到項(xiàng)目目錄下的 .git/hooks 目錄中生成一個(gè) pre-commit 文件(可執(zhí)行鉤子文件)
同時(shí)在項(xiàng)目目錄下生成了一個(gè) .clang-format 文件,其中 .clang-format 只是一個(gè)文件鏈接,指向了我們的 spacecommander 倉(cāng)庫(kù)中的這個(gè)文件,這個(gè)文件主要用來(lái)配置規(guī)范的選項(xiàng)。最重要的一個(gè)文件是 .git 隱藏文件夾下的 hook文件夾中的 pre-commit 腳本,這個(gè)腳本會(huì)在 git commit 之前執(zhí)行用來(lái)檢測(cè)代碼是否符合規(guī)范。

OK,操作完成。接下來(lái)測(cè)試一下。

隨便寫幾行代碼


image.png
git add .
git commit -m '...'

你會(huì)看到如下的輸出信息:


image.png

格式有問(wèn)題,提交失敗,按照他的要去,格式化相關(guān)文件

"/Users/xavior/desktop/HooksDemo/spacecommander"/format-objc-file.sh 'HooksDemo/ViewController.m'

打開(kāi)項(xiàng)目:

image.png

可以看到已經(jīng)完成格式化了,再進(jìn)行提交。
image.png

提交成功。
demo地址希望對(duì)你有所幫助。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容