网站开发时, 怎么协调VPS和本地的同步?

买了个VPS, 部署网站后, 需要修改网站源码, 但在终端直接连接VPS修改效率太低了, 而在本地修改的话, 还要上传(用filezilla上传), 这样的话, 也不方便.

有什么办法能够使得这个同步操作更简单方便吗?
(比如把网站源码放到github上, 直接在VPS更新? )

web新手, 提前谢谢了.

-------------分割线------------

谢谢@依云的指点, 使用了git来实现这一功能. 大概的过程也就是三步:
- 在VPS上建立一个Git server, 并创建一个repo仓库
- 在本地主机上拉取VPS repo仓库上的内容, 作为一个分支.
- VPS上创建一个用于部署的环境, 使用Hook技术动态更新..

阅读 8.4k
7 个回答
  1. 本地修改后 git push 到 vps 上,vps 上配置 git hook 自动更新代码、重启服务
  2. 本地修改后 rsync 到 vps 上
  3. 使用 FireFTP 或者 lftp 等支持直接修改远程 FTP 上的文件的 FTP 客户端(实际上是下载回来,你编辑完后再自动上传)
  4. 使用 Vim 直接编辑 ftp:// 或者 scp:// 地址
  5. 直接在 vps 上使用 Vim 或者 Emacs 修改,网络给力的话,效率和本地也差不多。如果网络延迟比较大,可以考虑使用 mosh 取代 ssh

楼上说的很好,用web hook,我们自己网站就是写的自动部署

如果你的开发机是windows的话,可以考虑用beyond compare. vps开一个samba,本机编辑然后用bc同步文件

你可以试试在vps上用一些continuous integration的工具,比如jenkins,jenkins可以配置github,bitbucket这类的git repo的hook,只要hook收到一个push,就能自动在vps上pull,然后在build step里用一个shell脚本来控制重启服务啊部署啊这类。这样你本地机器上改完代码push到github,vps上的jenkins就会自动pull,build,部署

自己写了个简易的发送工具。因为在项目根目录下,本地路径和线上路径相同。只要输入地址,选择好文件发送就行

可以使用ftp呀,建立起本地和远程文件夹同步就可以了
建议看一下winscp的使用教程,给你找了个:
winscp使用教程

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进