配置gitlab伺服器的git hooks 鉤子

2021-09-14 08:22:12 字數 1362 閱讀 1817

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 中,實踐過程中遇到的一些坑在這分享一下 找到...