我有这样一个需求,应该不小众吧:我有两台电脑,一台放家里,一台出门用。我希望这两台电脑之间能够同步代码。
有人可能会说:你直接让网盘同步整个代码文件夹不就行了吗!然而代码文件夹里会产生许多临时文件,比如 VS 的中间文件, java 的.class 等等。如果直接同步整个文件夹,结果就是你一边编程调试,网盘一边就在不停地上传;更别提,当你打开另一台电脑时,这些没用的临时文件也会被同步下来, VS 临时文件几十 M 不稀奇,那就干等着吧。
还有人可能会建议用 github 之类的代码托管服务,这样就可以用.gitignore 了。可是我的很多程序只是一些小玩具,小想法,根本用不到版本控制。而且打开命令行去一个个项目 push 、 clone 也很费事。
这个问题本质上其实非常好解决,只要网盘在同步之前,加一个根据文件的路径来过滤的功能就行了。虽然要求添加这个功能的呼声很高,但是网盘的开发者似乎不这么想。至少 dropbox 和 OneDrive 这两个墙外最流行的网盘并没有提供这个功能。
好了!废话说了一堆,开始说方法:
方法就是—— FreeFileSync 这个软件! http://www.freefilesync.org/ (我用的是 Windows ,但官网上提供各种操作系统下载,我觉得这个方法对其他操作系统也是适用的。)
这个软件可以同步两个文件夹里的内容,并且支持根据文件路径过滤(!)。而且,还可以把整个同步计划(源目录、目标目录、要过滤的文件等设置)保存成设置文件,要用的时候点两下鼠标就行了
比如我的程序都放在 D:\Program
我的 OneDrive 同步目录是 D:\OneDrive
当我要出门的时候,在电脑 A 上运行“ Program -> OneDrive ,镜像”这个同步计划,代码被复制到了 OneDrive 中
当我在外面,在电脑 B 上运行“ OneDrive -> Program ,镜像”这个同步计划,代码被复制到了 Program 中。马上可以开始愉快的编程了!
同理,如果要把代码从电脑 B 转移到电脑 A ,也是同样的操作。
在这过程中,得益于文件过滤功能,操作的都是源代码,所以体积超小,速度超快,几秒钟完事。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.