目标:需要Dropbox同步代码文件,需要使用git管理代码,Dropbox不同步 .git 目录。
实现:项目对应的 .git 目录,放在不被Dropbox同步的其他目录。
1. 步骤
1.1 第一台机器 [只需要一次]
下载项目,然后把整个项目拷贝到 Dropbox 里。
在 Dropbox 的 git 项目里执行
1 | git init --separate-git-dir ~/workspace/.gitdir_Obsidian |

打开.git 文件,可以看到:
1 | gitdir: /Users/liuwei/workspace/.gitdir_Obsidian |
1.2 第二台机器 [新机器]
下载整个 obsidian git 项目,把项目全部删除干净,只留下 .git 文件夹。
然后把 .git 文件夹,重命名为第一台机器设置的文件夹和路径,然后 git status 查看。

1 | #1. 设置软链接 |
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 里发生大量冲突。