最近上Github看見了大漠的DemoHouse項目,看到Issues說準(zhǔn)備做一個首頁,于是我的第一想法就是做一個md列表頁面,md文件可以很容易的生成一個html文件。剛剛做好腳本文件,可以生成list.md。隨后提了pr。同時看到 @jerexyz 使用gulp構(gòu)建工具做好了一個生成index.html的工具,我也就暫時放棄了繼續(xù)后面的工作,還好沒做,繼續(xù)做的話生成出來的也比較粗糙,還得再繼續(xù)美化修改。想象一下,如果這時我新收集了一個Demo,準(zhǔn)備提交版本庫,我是不是還得先執(zhí)行一下命令 node index.js 然后再添加暫存區(qū),提交版本庫,推遠程。如何省略執(zhí)行命令行這一句呢?

git hook (鉤子)

說到鉤子,不知道大家喜歡釣魚嗎?喜歡不喜歡應(yīng)該都知道魚鉤,不知道的再看一下,魚鉤長這樣的。

這是有一期我愛發(fā)明里面介紹的,一個釣魚狂熱愛好者發(fā)明的釣魚神器,看節(jié)目似乎很有效。通常我們見到的魚鉤就只是上半部分,這里卻多了一個小鉤,其實他就是我們這里準(zhǔn)備學(xué)習(xí)的hook。

為了達到某種效果,我們添加的一個腳本,在正常流程執(zhí)行的時候觸發(fā)這個腳本(個人拙略,如有偏頗忘指出)。

git的鉤子存放在 .git/hooks 目錄下,git init 時會自動生成一些示例腳本在該目錄下,腳本都是 .simple 后綴結(jié)尾,如果需要使用的時候,重命名取消后綴即可。

這里是希望在存入版本庫之前生成列表頁,查詢文檔發(fā)現(xiàn) pre_commit 是在 鍵入提交信息前運行 。

git add demo => pre_commit => git add list.md => git commit -m 'add new demo and update list.md'

pre_commit 是一個腳本文件,由于nodejs寫好了一個腳本文件,于是添加了一個頭部,然后最后添加生成的list.md到暫存區(qū)間

git add demo => git commit -m 'add new demo and update list.md'

實際上我們的操作流程就變成如上描述的樣子。這個就是正常流程,git commit 命名回車后先執(zhí)行的是 

網(wǎng)友評論