1. 生成并查看公钥

在服务器上生成 SSH 公钥,并查看内容:
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
cat ~/.ssh/id_ed25519.pub


2. 添加公钥至仓库设置

  • 在仓库设置页面添加刚才生成的公钥,并启用。
  • 部署公钥允许服务器以只读方式访问仓库,适用于生产环境自动部署,无需每次操作输入密码,也避免误修改代码的风险。
  • 配置部署公钥的机器,只支持 clone 和 pull 等只读操作。如果需要写操作,请添加个人公钥。

3. 设置 Git 仓库地址

在服务器项目根目录下,初始化 Git 并添加远程仓库地址:
git init
git remote add origin 【仓库ssh地址】


4. 安装并配置 Webhook(以阿里云 Codeup 为例)

  • 安装 webhook 服务。
  • 在软件设置中,将以下脚本添加到 webhook 中,并获取对应的 URL 与秘钥:
if test $1 = 'pull'
then
   echo "-----------------------------------------------"
    dirpath="/www/wwwroot/{实际项目路径}"
    echo "开始时间:" $(date '+%Y-%m-%d %H:%M:%S')
    echo "当前执行用户是: $(whoami)"
    echo '分支:develop'
    echo "Git 版本:$(git --version)"
    echo "当前目录:" $(pwd)
    echo "切换到目录:" $dirpath  
    cd $dirpath 2>&1
    echo "拉取代码"
    git pull origin develop 2>&1
    echo "结束时间:" $(date '+%Y-%m-%d %H:%M:%S')
fi


5. 在仓库平台设置 Webhook

  • 将上一步获取的 URL 和秘钥,在 Git 仓库平台的 Webhook 设置页面进行配置。
  • 注意:URL 末尾参数如 param=aaa,脚本中的 if test $1 = 'pull' 就是判断该参数的值。可根据需求调整。

6. 常见问题及解决方案

问题:服务器重启后报错

fatal: detected dubious ownership in repository at '/www/wwwroot/{path}'
To add an exception for this directory, call:
git config --global --add safe.directory /www/wwwroot/{path}

这里虽然提示权限问题,但设置安全路径,设置文件权限是没有用的。

解决方法:
  • 在终端执行 bt restart 重启宝塔面板,或先输入 bt 后选择对应选项号进行重启。

更多推荐