[英]git post-receive hook not running
我有一個裸倉庫服務器端,我能夠從我的本地機器成功提交和推送。 但是,post-receive 鈎子沒有運行。 細節:
-rwxr-xr-x
權限echo "Some text"
,但這沒有顯示(請參閱: Post Commit Hook Not Running )。.
user@server:/home/repos/project1/hooks# cat post-receive
#!/bin/sh
echo "Hook is running..."
export GIT_WORK_TREE=/home/web/project1/www/
git checkout -f
rm -rf /home/web/project1/www/temp/
我有這個問題。 我的腳本文件名中有一個錯字。
后接收而不是后接收
該問題與文件系統的安裝有關。 該分區已掛載為noexec
,因此無法執行任何文件。 這導致鈎子無法運行。 我刪除了noexec
標志,現在它可以正常工作了。
如果代碼庫沒有變化,似乎 GIT 不會運行post-receive鈎子。
就我而言,
post 鈎子沒有被執行,但“推送”操作不斷返回以下消息。
一切都是最新的
所以我只是在我的代碼中創建了一個空文件,提交了然后推送到遠程。 在其上執行post-receive鈎子。
我使用了 MacBook,這對我的情況有所幫助:
chmod ug+x .husky/*
chmod ug+x .git/hooks/*
我在 Centos 6 系統上遇到了同樣的問題,結果是 SELinux 阻止了鈎子腳本的運行。 將httpd_git_script_t轉換為一個許可域在這里有幫助(因為“sesearch -A -s httpd_git_script_t -p exec”沒有產生任何結果,即沒有允許在 httpd_git_script_t 域中運行的進程具有 exec 權限):
semanage permissive -a httpd_git_script_t
你確定它沒有運行? 它一定在運行,你只是看不到它。 我的猜測是在執行 ssh 會話時沒有為您的 ssh 會話設置標准輸出,因此您永遠不會看到回聲的輸出。 該鏈接建議在本地進行測試,而不是通過 ssh。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.