2

我目前是 git 的新手。

我的想法是,我正在使用我的本地 git 存储库并将其推送到一个裸存储库。

但是后来我想将更改发布到无法安装 git 的实时站点。因此,我无法从裸仓库中拉取实时站点。您如何将裸 git 存储库中的更改同步到这个实时站点?

非常感谢您的想法。

BR

4

2 回答 2

2

由于您无法在远程服务器上安装任何东西,您将编写一个部署脚本,该脚本将使用 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

再举一个简单的例子。

于 2013-05-07T17:22:30.390 回答
0

另一种选择是使用git-ftp可能特别适合网站部署的选项,因为 FTP 通常可用。

于 2013-05-08T15:19:36.530 回答