簡體   English   中英

每次git推送后執行一個腳本

[英]Execute a script after every git push

有一台服務器在運行並且有一個git實例。 我希望每次用戶執行git push到服務器時都運行一個腳本。 我希望我的腳本被執行然后git push繼續。 有什么工作嗎?

我不確定你是否想在推或之前運行一個scipt。 所以這是我對推前的回答。 但是如果你想要后推(即推后),你必須相應地改變pre-push鈎,以檢查是否成功推動,然后你可以做推后推送。

正如@Travis所建議的那樣,你正在尋找git hooks 因此,要執行預推腳本,您必須在.git/hooks創建pre-push文件。 所以在這種情況下,將你的一堆代碼放在帖子前腳本文件.git/hooks/pre-push並保存。 然后通過chmod +x .git/hooks/pre-push使其可執行。 成功完成此操作后,您將能夠在每次運行push命令時看到腳本執行。

PS:請注意,我沒有測試過這個,但預計會以這種方式工作。

簡而言之,假設您(Linux用戶)位於項目目錄中

vim .git/hooks/pre-push # then add your code and save the file
                        # Also put the shebang on top to identify the interpreter
chmod +x .git/hooks/pre-push # make it executable

你已經標記了這個GitHub所以我假設你指的是公共GitHub而不是GitHub企業。

您不能在GitHub的服務器上運行“服務器端”腳本,因為這顯然是一個巨大的漏洞,但您可以設置一個Web掛鈎來觸發另一台服務器上的腳本。

基本上每當有人進行推送時,特定的URL將被發送有關推送的數據。 然后,您可以從中觸發腳本。 有關Web掛鈎的更多信息,請參閱GitHub API文檔

你應該看看git hooks:

8.3自定義Git - Git Hooks

另一個關於這項技術的網站:

githooks.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM