2013-05-07 91 views
2

我目前是一个新手与git。同步git仓库与服务器没有混帐

我的想法是,我正在使用我的本地git回购,并将其推送到裸回购。

但是,然后我想将更改发布到一个没有安装git的可能性的活动站点。所以我无法从裸回购做到拉住现场。 你会如何同步从裸露的git存储库到这个活网站的变化?

非常感谢您的想法。

BR

回答

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 [email protected]:/var/www/folder 

同样,一个简单的例子。

0

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