我想使用git将推送的更改部署到测试服务器。我正在使用网上许多来源中描述的post-receive hook:
#!/bin/sh
GIT_WORK_TREE=/var/www/test git checkout -f
这对我有用。当我暂停并提交我的更改,然后运行git push origin master
时,我的更改会被推送,文件会检出/var/www/test
。
但是,我需要更进一步。我需要将我的文件签出到另一台服务器:我的测试服务器,而不是我的git服务器。我在接收后的钩子中试过以下内容:
#!/bin/sh
ssh user@555.55.555.5 'GIT_WORK_TREE=/home/user git checkout -f'
...但我的连接时间已超时'消息。
我的本地机器通过ssh密钥对我的git服务器进行身份验证,但我还没考虑我的git服务器如何通过我的测试服务器对其进行身份验证来编写文件。
如何正确地指示post-receive hook将文件签出到服务器上的文件夹,而不是我推送到的那个?
希望这是有道理的。感谢。