org files的同步 是使用git还是网盘更合适

最近在考虑多终端查看/编辑org-roam笔记的问题,是使用git来管理同步,还是用网盘来做更合适?

git的优势包括

  • 历史版本
  • 方便使用magit管理

网盘的优势包括

  • 自动同步
  • 方便在移动终端查看

想了解一下大家的取舍以及理由

用的坚果云,省事

这俩不冲突啊,我都在用。

网盘吧,有些网盘也自带有文件版本控制功能,虽然和git不能比.

看你所指 org files 是什么喽?

如果是任务管理文件,本身自带时间戳,而且频繁变化,适合用网盘。

如果是笔记文章,则 git 更合适。

如果是两者合在一起的,那就两个都用吧。

2 个赞

两个都用,侧重点不同。Git 是做版本跟踪,可以每一段时间进行一次提交备份,哪怕有天不小心删了,你也可以通过 Git 找回来。而网盘则是为了在不同设备同步。

有个好东西叫 Syncthing

3 个赞

两个都用。

verysync + 不定期git

1 个赞

没啥隐秘信息,就全扔github的私密项目里面了。。。省事,毕竟org files也就emacs操作,.emacs.d也在上面

1 个赞

赞同,我目前就是这么用的

如果两者都使用的话,怎样实现更加理想呢?构思了两个流程,请大家提提意见。

第一种:直接在网盘目录下建立git仓库

这样可能最简单,不同的设备上只要网盘一同步就是处于相同的最新状态,需要的时候再偶尔push到github/gitlab等等就可以。

但坏处是,比如设备A在离线状态下进行了一些修改,设备B也在离线状态下进行了一些修改,然后这两台设备在同步的时候,不清楚网盘的同步机制,会不会把git仓库搞乱。

第二种:本地建立git仓库,也在网盘目录下建立git仓库,把网盘目录设置为git的远程仓库,平时只在本地做修改,偶尔定期push到网盘仓库后让网盘进行自动同步。

这样做应该就能规避第一种方法的弊端(前提是每次push到网盘目录的时候是联网的并且网盘目录也是处于最新状态,否则感觉还是可能会翻车),但是这样远程仓库就会有两个,一个是github/gitlab的远程,一个是本地网盘的,逻辑就变得复杂一些了。

有没有什么类似于第二种方法的改进策略,尽可能杜绝掉网盘同步git仓库可能带来的冲突,又能降低一点复杂度的方法呢?

PS:我自己的情况是org files中,文本为主,但也会夹杂一些图片、文件,放在与笔记同名的目录下一起同步,所以可能有些不伦不类

1 个赞

我用nextcloud,自带简单的版本控制。如果对版本控制要求不高的可以试试。

1 个赞

我是用的 dropbox,然后org 文件都是放到 dropbox 的文件夹里,git 也是就在对应的文件夹里,本地创建软链接过去。

如果A, B设备同时改了 C 文件,A 同步到 dropbox, 然后 B 开启同步时,应该会有同步冲突提示的。 不过因为一直都是开机就开 dropbox, 还没碰到离线的那种问题。

目前,我是 iphone, macbook 和一台 linux 机器在用,暂时没碰到太大问题。 仅供参考 :)

现在是用的坚果云,ipad+办公室电脑+个人笔记本+手机同时同步很方便,私密文件还可以gpg加密保存

为啥不在网盘里同步 git repo⋯⋯?

之前对于git的认识可能还是不足,按照网盘里放置repository,然后本地push过去的情况,网盘里放的只能是bare repository,那通过别的方式访问网盘的话,事实上是看不到具体文件的。

再次陷入困境……

+1,我也用的这个,不过感觉害怕同步内容丢失,准备定期提交到 Git 里面去。

1 个赞

一个参与同步的24x7运行的旧电脑上开无限历史版本。

Dropbox 和 git 一起用,我有 3 台 Linux 设备,其中一台 24 小时在线。出现冲突的时候不多,也比较容易解决

第一种在你不能确定文件是否完全同步的状态下,可以把 git 操作限制在某一台电脑,只用它进行 commit & push 操作,避免 .git 目录出现文件冲突就行了。

第二种跟只用 github 作远程没啥区别,你在另一台电脑也只能拿到你 push 上去的东西。

1 个赞