请问大家同步工程目录事后 网盘怎么处理.venv .git 之类文件

3 月 16 日
 pathetique
光 .venv 就有好几个 G ,包含海量小文件 经常同步噎住
现在只能做就是手动排除
但 macOS 没有 dropbox exclude 命令,只能用 xattr 而且经常忘
大家是怎么办的?
2583 次点击
所在节点    程序员
30 条回复
xy2401
3 月 17 日
venv git 都放到上级目录 然后 dropbox 同步子目录 (软链接映射过去?

My_Project/ (父文件夹)
├── .git/ # 整个大项目的版本控制
├── .venv/ # 共享的 Python 虚拟环境
├── .gitignore # 忽略 .venv 和子项目的缓存
├── requirements.txt # 汇总的依赖清单
├── Project_A/ # 子项目 1
│ └── main.py
└── Project_B/ # 子项目 2
└── app.py



------------
单说 git 我以前考虑过 .git 目录分离方案


--git-dir=<仓库路径>

设置仓库的路径(".git" 目录)。这也可以通过设置 GIT_DIR 环境变量来控制。<仓库路径> 可以是绝对路径或是当前工作目录的相对路径。

使用该选项(或 GIT_DIR 环境变量)指定 ".git" 目录的位置,这会关闭对带有 ".git" 子目录仓库的扫描(这是找到仓库和顶级工作区的方式),并告诉 Git 当前在顶级工作区。 如果当前并不在工作区的顶级目录,你应该用 --work-tree=<工作区路径> 选项(或 GIT_WORK_TREE 环境变量)告诉 Git 顶级工作区在哪里

如果你只是想在 <启动路径> 中运行 Git ,可以使用 git -C <启动路径>。
--work-tree=<工作区路径>

设置工作树的路径。<工作区路径> 可以是一个绝对路径或与当前工作目录相对的路径。 这也可以通过设置 GIT_WORK_TREE 环境变量和 core.worktree 配置变量来控制(参阅 git-config[1] 中的 core.worktree 获取更为详细的论述)。
kenyons
3 月 17 日
syncthing
sn0wdr1am
3 月 17 日
用 git 做版本控制,而不是网盘。

我觉得用网盘做版本控制,我不习惯。

我总觉得不靠谱。
ruanimal
3 月 17 日
没用过 rsync 吗?
pathetique
3 月 17 日
@xy2401 哎 那还要考虑几个同环境的 proj 归类 不优雅了哈哈
git 目录无所谓的,充其量几百个文件 .venv 才是大头(一次几万个 对文件表是灾难) 而且 uv 的方便本来就是随地使用随地丢吧 就是 dropbox 会把一次性垃圾收了
pathetique
3 月 17 日
@kenyons 有比 dropbox 更优的文件目录 indexing 系统吗?商用网盘反正,五百万个文件以上目前还没干过 dropbox 的,onedrive 和 googledrive 全挂,dropbox 慢点但是没问题
pathetique
3 月 17 日
@ruanimal 手动+脚本的不考虑了 见上 希望非常即时同步
Akkuman
3 月 17 日
git 可以同一个别名多个来源

```shell
git remote set-url --add origin xxx
git remote set-url --add origin xxx
```
ruanimal
3 月 17 日
@pathetique inotifywait + rsync 非常实时
kenyons
3 月 19 日
@pathetique 就即时同步来说,syncthing 是满足的,但 syncthing 不是云盘类型的软件。

云盘类型,我只用过 onedrive 、icloud 和坚果云。

坚果云是个人感觉,国内环境下使用体验比较好的商用同步网盘,但我觉得就你描述的场景来说,syncthing 是最优的,虽然前期会比较折腾

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1198650

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX