如何在没有git访问的情况下在远程网站上同步git分支?

时间:2012-07-16 18:51:19

标签: git ssh

我有一个 live 分支,需要在实时服务器上(git pull),但是实时服务器无法访问bitbucket。

虽然我使用login / pass在远程服务器上进行ssh访问(无法使用ssh-key),但同步远程服务器上指定分支的最佳方法是什么(更新和删除已更改的文件)?

2 个答案:

答案 0 :(得分:0)

使用scp从有权访问bitbucket而不是使用git的计算机上将文件复制到服务器。从比特桶中取出一个cron作业。使用post receive hook启动scp命令。

答案 1 :(得分:0)

我使用rsync解决了这个问题。

使用rsync,我可以检查已修改的女巫文件,并且在远程服务器上有所不同。

我还创建了一个名为 build.exclude.sync 的文件,其中包含我要跳过的每个目录,在终端我可以使用:

rsync -avz --exclude-from=build.exclude.sync /home/path/to/local/dir/ -e ssh myuser@myremotehost.com:/path/to/remote/dir/

我使用Apache Ant的rsync来自动化构建过程。在我的build.xml文件中:

<exec executable="rsync" dir="." failonerror="true">
         <arg line="-avz --exclude-from=build.exclude.sync ${prod.local.deploydir} -e ssh  ${prod.sshusername}@${prod.sshhost}:${prod.homedir}"/>
</exec>