2016-05-04 88 views
2

我已經創建了一個git pre-push hook,它可以構建我的.NET解決方案並運行單元測試。因此,執行git push命令現在會在將代碼推送到原點之前觸發構建/測試。將參數傳遞給git預推鉤

這一切工作得很好。但是,有些情況下我想繞過這個鉤子。也許我知道一個測試失敗了,現在沒問題,我只想跳過我的鉤子邏輯。

理想我可以做這樣的事情:

git push --skip-tests

然而,這似乎並不會飛,是因爲git的標誌--skip-tests作爲一個無效的參數。有沒有一種方法可以在執行推送時從命令行將參數傳入鉤子,以便我可以根據該參數是否存在來分支鉤子邏輯?

回答

4

你應該跳過它:

git push --no-verify 

git push man page

隨着--no-verify,掛鉤完全繞過。


然而,這種旁路不只是測試,但所有的鉤:建太多。

你可以保持鉤子,但添加一個環境變量,鉤子腳本將檢測到爲了構建但不測試。

skip-test=true git push 
+0

完美。謝謝!在這種特殊情況下,完全繞過掛鉤將起作用,儘管有能力跳過它的一部分。 – Scott

+0

@Scott我編輯過的答案也指向了另一種選擇。 – VonC