1

我有 2 台机器,一台是我编写代码的计算机,一台是我运行代码的远程机器。我想在我的机器上编码并在将代码保存到远程机器时同步代码。我知道我可以将 ssh 用于该目的,但我想在我的机器的硬盘上工作,因为它更快。是否有任何解决方案可以定期将我的本地副本同步到远程副本?非投递箱

4

2 回答 2

2

标准工具是rsync

rsync -r<various other options - check man for which you need> . sshuser@host:/remote/dir

然而,出于开发目的,它更容易使用git(您使用 vcs,不是吗?)。设置有点复杂,但优点是您可以通过 git push 手动完成,并且在 rsync 单独检查每个文件时只发送您的更改(差异):

  1. 在测试机器(运行代码的机器)上创建一个裸存储库
  2. 像这里post-receive描述的那样添加一个钩子
  3. 利润(当你想同步时只需 git push)

的缺点git是它不适合大型和/或二进制文件,例如图像(以及 git)。


两种解决方案都不会自动同步。我相信这是一项功能,因为您通常想确切地知道自己正在运行什么,并且要么立即同步(“这是关键的安全修复”),要么仅在您执行某些操作时进行同步 - 即使进行测试时您也不想同步正在编写一个函数。

如果您确实想这样做,您可以随时添加一个 cron 条目来执行此操作。

于 2013-08-12T08:43:15.880 回答
1

rsnapshot(此处)或 git-annex(此处)都可以满足您的需求。rsnapshot 可能更简单(基本上是 cron + rsync + ssh 的包装)。git-annex 稍微复杂一些,但借助助手,它可以让您在自己的服务器中获得类似 Dropbox 的体验。

于 2013-08-12T08:31:24.653 回答