root是某個gitlab使用者
***.git是***專案的git倉庫根目錄
在gitlab裡
目錄 /var/opt/gitlab/git-data/repositories/root/***.git/hooks/
是乙個連線指向/opt/gitlab/embedded/service/gitlab-shell/hooks/
我們需要到
目錄/var/opt/gitlab/git-data/repositories/root/***.git/下
新建 custom_hooks目錄
把post-receive放在該目錄下。
操作如下
#切換目錄
cd /var/opt/gitlab/git-data/repositories/root/***.git
#建立鉤子目錄
mkdir custom_hooks
#賦給許可權
chown git:git custom_hooks
chmod 755 custom_hooks
cd custom_hooks
#建立 post-receive 鉤子
vi post-receive
#儲存post-receive內容後
#賦給許可權
chown git:git post-receive
chmod 755 post-receive
#切換專案根目錄
cd /var/www/html
mkdir erp
chmod 777 -r erp
#!/bin/bash
# /var/www/html/erp是你專案的根目錄 checkout -f 是自動檢出
git --work-tree=/var/www/html/erp checkout -f
# master是需要檢出的分支
branch=master
while read oldrev newrev ref
do if [[ $ref =~ .*/$$ ]];
then
echo "$branch ref received. deploying $branch branch to testserver..."
git --work-tree=$ checkout $ -f
else
echo "ref $ref successfully received. doing nothing: only the $branch branch may be deployed on this server."
fidone
詳見:
參考:
Git伺服器 GitLab搭建
1 很簡單,按照官方文件操作即可 gogs 是乙個輕量級的 易於設定 跨平台的git託管服務,不遜色於 gitlab 和 github。雖然不比這二者成熟,但它有很大的潛力。git 是一種版本控制系統,是乙個命令,是一種工具。github gitlab 不同點 1 github如果使用私有倉庫,是需...
配置gitlab伺服器的git hooks 鉤子
需求是本地開發分支develop推到遠端倉庫後自動部署測試伺服器。看很多文章,講的非常複雜。都沒講清楚架構情況。我們的架構是,多台本地開發機器,一台伺服器,伺服器上跑著測試程式和gitlab。這邊文章解決的是測試端和git遠端倉庫在一台機器上的情況,如果是測試程式和gitlab各自一台伺服器,那比較...
GitLab 配置伺服器 SSH 許可權
公司的專案使用 gitlab 管理遠端 git 庫,為了實現 ci cd 需要在伺服器上對 git 庫進行 clone pull 甚至是 push 操作,公司 gitlab 通過 ssh 的方式實現認證,就需要把伺服器的 ssh 公鑰配置到 gitlab 中,實踐過程中遇到的一些坑在這分享一下 找到...