将git存储库与不带git的服务器同步
我目前是git的新手 我的想法是,我正在与我当地的git回购协议合作,并将其推到裸回购协议 但是,我想将更改发布到一个实时站点,该站点不可能安装git。因此,我无法从光秃秃的回购协议中拉动现场。 如何将更改从裸git存储库同步到此实时站点 非常感谢你的想法将git存储库与不带git的服务器同步,git,sync,Git,Sync,我目前是git的新手 我的想法是,我正在与我当地的git回购协议合作,并将其推到裸回购协议 但是,我想将更改发布到一个实时站点,该站点不可能安装git。因此,我无法从光秃秃的回购协议中拉动现场。 如何将更改从裸git存储库同步到此实时站点 非常感谢你的想法 BR因为您无法在远程服务器上安装任何东西,所以您需要编写一个部署脚本,使用ssh(rsync)、sftp或其他文件传输方法将代码“发布”到站点。我不会在脚本中包含任何登录信息,而是要求它作为脚本的参数或环境变量 下面是一个使用bash的简单示
BR因为您无法在远程服务器上安装任何东西,所以您需要编写一个部署脚本,使用ssh(rsync)、sftp或其他文件传输方法将代码“发布”到站点。我不会在脚本中包含任何登录信息,而是要求它作为脚本的参数或环境变量 下面是一个使用bash的简单示例:
#!/bin/bash
usage() {
echo "deploy usage:
echo " deploy sshtarget # uses rsync"
exit 1
}
if [ $# -eq 0 ]; then
usage
fi
echo "Deploying to $1..."
rsync -e ssh -avh --progress --exclude .git* --exclude .giti* --exclude deploy * $1
exit 0
因此,这将使用用户当前的ssh标识作为将文件复制到远程服务器的基础,“sshtarget”将是远程目录。例如,如果deploy
脚本位于源代码树的根目录下,您要发布的文件也位于根目录下:
./deploy username@server.com:/var/www/folder
同样,一个简单的例子。另一个选项是使用FTP,它可能特别适合网站部署,因为FTP通常是可用的