【问题标题】:How to call a script from the server, when 'git push' to the git Gogs repository?当“git push”到 git Gogs 存储库时,如何从服务器调用脚本?
【发布时间】:2019-09-03 11:16:05
【问题描述】:

当从本地存储库调用git push 到 git gogs 存储库时,我需要在我的服务器上运行脚本

#!/bin/sh
git pull origin test

source env/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

python manage.py migrate
python manage.py collectstatic --noinput

sudo systemctl restart gunicorn.service
sudo systemctl restart celery-worker.service
sudo systemctl restart celery-beat.service

网上删减-说你需要用git Hooks。想出了如何编辑钩子。

问题 - 我如何通过 SSH 从 git Hooks 运行服务器中的文件???

ssh user@my.server

这不起作用!

【问题讨论】:

    标签: git github ssh githooks


    【解决方案1】:

    您应该不需要 ssh,考虑到 server-side hook 已经在 (Git Gogs) 服务器上执行。

    确保将您的脚本作为一个可执行的 post-receive 文件放在您的 Gogs repositories bare repos 之一中。

    在那个钩子里,做:

    #!/bin/bash
    echo "pull from non-bare repo"
    unset GIT_DIR
    cd /path/to/checkedout/repo
    git --work-tree=. --git-dir=.git pull --no-rebase origin test
    ... rest of your script
    

    确保 /path/to/checkedout/repo 是您的 Gogs 存储库之一的克隆。

    【讨论】:

    • 当 git push origin 测试从本地计算机到 gogs 存储库时应该运行钩子。然后,在远程服务器上,应该更新来自同一个 gogs 存储库的数据并开始迁移。我想你说的是我是否必须在 gogs 存储库服务器中进行迁移并执行脚本
    • @I.Simonov 所以...一个预推钩,然后:stackoverflow.com/a/14672883/6309
    猜你喜欢
    • 1970-01-01
    • 2019-04-16
    • 2014-05-02
    • 1970-01-01
    • 2010-12-01
    • 2021-04-18
    • 2014-10-18
    • 2015-04-07
    • 2018-11-01
    相关资源
    最近更新 更多