2014-10-29 143 views
16

我需要使用多個預先提交鉤子腳本。不知道如何處理它們。是否應該將它們全部合併成一個大的預先提交腳本?如果不是,如何處理多個預先提交的腳本?處理多個預先提交鉤子

+0

相同http://stackoverflow.com/questions/30104343/multiple-git-hooks-for-the-same-trigger – 2017-02-08 07:07:06

回答

19

是否應該將它們全部合併成一個大的預提交腳本?

是的,沒有:你只能申報一個預提交腳本,因此該腳本應負責到:

  • 調用實際預提交腳本
  • 選擇了一個爲了使這些腳本被調用。

所以:

  • 一個預提交腳本
  • 調用多個腳本,每一個允許或沒有(與他們的退出狀態)提交繼續。
+6

組織這種方法的一種方法是創建一個'pre-commit.d'目錄,其中包含所有你想運行的腳本。然後,您的'pre-commit'腳本會按照上面的建議按順序運行所有這些腳本。 – TomDotTom 2016-03-07 17:57:25

+0

@TomDotTom根據你的建議,我在https://bugs.chromium.org/p/gerrit/issues/detail?id=5999和https://github.com/tommarshall/git-good-commit /問題/ 19 – sorin 2017-04-13 18:54:35

9

您可以使用委託腳本,僅調用其他腳本(subhooks):

https://gist.github.com/carlos-jenkins/89da9dcf9e0d528ac978311938aade43

用法:

讓您的建築系統創建的Git的符號鏈接使用您想要參加的掛鉤名稱將目錄掛接到此腳本。例如,pre-commit

那麼該鉤子將執行,按字母順序排列,所有可執行文件你參加 與.d後綴鉤型命名的文件夾下找到 (subhooks)。例如,pre-commit.d

怎麼可能看:

.git/hooks/ 
|_ pre-commit -> ../../tools/git/multihooks.py 
|_ pre-commit.d/ 
    |_ 01-cpp_coding_standard 
    |_ 02-python_coding_standard 
    |_ 03-something_else 

這需要Python3,但你可以使用其他技術類似的東西來了。