将git存储库与不带git的服务器同步

将git存储库与不带git的服务器同步,git,sync,Git,Sync,我目前是git的新手 我的想法是,我正在与我当地的git回购协议合作,并将其推到裸回购协议 但是,我想将更改发布到一个实时站点,该站点不可能安装git。因此,我无法从光秃秃的回购协议中拉动现场。 如何将更改从裸git存储库同步到此实时站点 非常感谢你的想法 BR因为您无法在远程服务器上安装任何东西,所以您需要编写一个部署脚本,使用ssh(rsync)、sftp或其他文件传输方法将代码“发布”到站点。我不会在脚本中包含任何登录信息,而是要求它作为脚本的参数或环境变量 下面是一个使用bash的简单示

我目前是git的新手

我的想法是,我正在与我当地的git回购协议合作,并将其推到裸回购协议

但是,我想将更改发布到一个实时站点,该站点不可能安装git。因此,我无法从光秃秃的回购协议中拉动现场。 如何将更改从裸git存储库同步到此实时站点

非常感谢你的想法


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通常是可用的