当我从本地存储库调用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。弄清楚如何编辑钩子。
问题 - 如何从git Hooks通过SSH从服务器运行文件?
ssh [email protected]
这不起作用!
考虑到server-side hook已经在(Git Gogs)服务器上执行,你不应该需要ssh。
确保将您的脚本作为可执行的接收后文件放在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 / checked out / repo是你的一个Dogs repo的克隆。