我有一个 live 分支,需要在实时服务器上拉(git pull),但是实时服务器无法访问bitbucket。
虽然我使用login / pass在远程服务器上进行ssh访问(无法使用ssh-key),但同步远程服务器上指定分支的最佳方法是什么(更新和删除已更改的文件)?
答案 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>