1
我在本地服務器上設置了Gitlab。我注意到,當我將某些代碼添加到某個存儲庫中的「post-receive」文件時,所有更改都將應用於該組中的所有其他存儲庫。Gitlab同步組中的所有存儲庫中的「鉤子」
如何阻止它?
我在本地服務器上設置了Gitlab。我注意到,當我將某些代碼添加到某個存儲庫中的「post-receive」文件時,所有更改都將應用於該組中的所有其他存儲庫。Gitlab同步組中的所有存儲庫中的「鉤子」
如何阻止它?
檢查 「Custom Git hooks setup」:
通常情況下,Git的鉤子放到倉庫或項目的掛鉤目錄。 GitLab從每個項目的hooks目錄創建一個符號鏈接到gitlab-shell掛鉤目錄,以便於在gitlab-shell升級之間進行維護。
這解釋了爲什麼你的鉤似乎傳播到所有組的回購。
按照以下步驟設置自定義掛鉤:
- 選擇需要自定義的Git掛鉤的項目。
- 在GitLab服務器上,導航到項目的存儲庫目錄。對於源代碼安裝,路徑通常是
/home/git/repositories/<group>/<project>.git
。
對於Omnibus安裝路徑通常爲/var/opt/gitlab/git-data/repositories/<group>/<project>.git
。- 在這個位置創建一個新的目錄,名爲
custom_hooks
。- 在新的custom_hooks目錄中,創建一個名稱與鉤子類型匹配的文件。
對於pre-receive
掛鉤,文件名應爲pre-receive
,不得包含擴展名。- 使鉤子文件成爲可執行文件並確保它屬於git。
- 編寫代碼,以使Git的鉤子函數如預期
我有問題。現在,我的鉤子不起作用。我已經改變了文件夾的所有者,鉤子的所有者,所有名稱都是實際的,我已經使鉤子可執行。我正在使用post-receive將代碼部署到文件夾(/ etc/* destination_folder /),甚至授予我想要部署的文件夾的777權限,但它不起作用。你能談談這個問題嗎? – lucas63
「我的鉤子不起作用。」你有錯誤信息嗎?嘗試在你的鉤子中添加一些echo以查看它們是否被執行(並且使用'env'命令查看腳本使用哪個環境變量) – VonC
如何檢查它?當我使用這個鉤子作爲全局項目時 - 它完美地工作 – lucas63