0%

dropbox和git结合实现obsidian同步

目标:需要Dropbox同步代码文件,需要使用git管理代码,Dropbox不同步 .git 目录。

实现:项目对应的 .git 目录,放在不被Dropbox同步的其他目录。

1. 步骤

1.1 第一台机器 [只需要一次]

下载项目,然后把整个项目拷贝到 Dropbox 里。
在 Dropbox 的 git 项目里执行

1
git init --separate-git-dir ~/workspace/.gitdir_Obsidian
image-20231127235230278

打开.git 文件,可以看到:

1
gitdir: /Users/liuwei/workspace/.gitdir_Obsidian

1.2 第二台机器 [新机器]

下载整个 obsidian git 项目,把项目全部删除干净,只留下 .git 文件夹。

然后把 .git 文件夹,重命名为第一台机器设置的文件夹和路径,然后 git status 查看。

image-20231128001029205
1
2
3
4
5
6
7
8
9
10
#1. 设置软链接
ln -s ~/Dropbox/Obsidian ~/workspace/Obsidian

#2. 下载整个 git 项目,把项目全部删除干净,只留下 .git 文件夹。
cd workspace
git clone git@github.com:unix2dos/Obsidian.git --depth=1 a.git

#3. 然后把 .git 文件夹,重命名为第一台机器设置的文件夹和路径,然后 git status 查看。
mv a.git/.git /Users/liuwei/workspace/.gitdir_Obsidian
rm -rf a.git

2. 同步注意事项

不同的电脑内,因为 dropbox 更新,文件大概率是最新的。

先确认一下是否是最新,本地 git status 可能会出现大量的修改文件。

2.1 本地操作

其他电脑的 git commit 可能是滞后的,所以本地可能有大量的修改文件。

不要 git checkout – . (因为别人的修改,可能没有 commit)。

直接 add all 并且 commit。

2.2 冲突解决

这种情况下可能会有冲突(还有 obsidian-git 的竞争)。
因为 dropbox 同步是实时的,本地应该是最新的,所以直接 git checkout –ours .

2.3 总结

虽然有很多冲突,但是把冲突分散在了不同电脑的 git 控制上,而不是在 dropbox 里发生大量冲突。

3. 参考资料

可以加首页作者微信,咨询相关问题!