能不能在一个项目中使用不同的 git?

2020-04-15 17:38:48 +08:00
 JCZ2MkKb5S8ZX9pq

背景

- bin
- deps
- sqlite
- assets

需求

问题

3362 次点击
所在节点    git
22 条回复
coderluan
2020-04-15 17:40:06 +08:00
Submodule 不行吗?
zu1k
2020-04-15 17:40:53 +08:00
git submodule
GM
2020-04-15 17:42:35 +08:00
submodule 太难用了,别用。
FHXISDOG
2020-04-15 17:46:52 +08:00
添加一个新的远程仓库,git remote add xxx
yanqiyu
2020-04-15 17:54:31 +08:00
这其实就是 submodule 的典型用途
但是 submodule 确实太麻烦
你更新了 submodule 的仓库之后还要更新外面的仓库
tairan2006
2020-04-15 17:58:14 +08:00
其他部分用 dropbox 自动同步,反正你只要最新的,也不需要版本管理吧
JCZ2MkKb5S8ZX9pq
2020-04-15 18:09:50 +08:00
submodule 的确有点麻烦,而且有些东西在根目录下面,切分起来也不大方便。
GreyYang
2020-04-15 18:21:45 +08:00
比较复杂的项目可以参考 Android 的 Repo & Gerrit, 可以满足管理多个 git 仓的需求, 但是本身也引入了复杂度. https://source.android.com/setup/develop#repo
crz
2020-04-15 18:30:00 +08:00
可以指定 git dir, 或者 work tree, 同一个目录对应多个 git dir,每个 git dir 分别设置 exclude

缺点是 exclude 每个客户端都要设置
cmdOptionKana
2020-04-15 18:34:56 +08:00
依赖和大文件本来就不应该用 git 吧?用别的备份方式就好了。
bog
2020-04-15 18:40:09 +08:00
你是需要 git lfs 吗
james122333
2020-04-15 18:46:49 +08:00
硬派实现啊 写脚本差不多
SilentDepth
2020-04-15 18:56:00 +08:00
除了 Git Submodule 还有更好的办法?

麻烦的问题可以靠脚本和 Alias 解决
vevlins
2020-04-15 18:59:40 +08:00
感觉你之所以分开同步只是因为文件太大懒得时刻保持同步,不想更新的时候就不 git add 不就得了嘛,需要的时候再 add + commit + push 。

git submodules 有些大材小用了吧? 楼上的 lfs 还合理点,没用过,听说也有坑,我们公司做美术的还是习惯 svn 。
basstk
2020-04-15 18:59:51 +08:00
同意 4 楼说的添加一个新的远程仓库,没测试过,应该可以
JCZ2MkKb5S8ZX9pq
2020-04-15 19:14:20 +08:00
@vevlins

也不完全是,因为 homeassistant 本身结构不像我的示例这么清晰。
根目录下也有不少文件。这也是 submodule 不太方便的地方。

一部分是我的设备和自动化等等的配置文件。这部分是改完就 git 。

同时还有很多第三方插件,这个就类似 deps,比如第三方更新了,一般来说向下兼容,但偶尔也会出错。但这部分就希望跟我自己的配置分开 git 。因为更新时间不定,而且很杂,而且也都不是我的代码。

另外还有它运行中自己的 sqlite 和其它一些 log 之类的东西。

这些部分混在一起。我目前是主要备份自己写的代码,其它 ignore 。
偶尔 homeassistant 版本升级之类的,大都能兼容。但万一不兼容,有时候懒得搞就想直接回退或者比较一下差异啥的,就想要个 git,但是希望和自己写的部分能区分开。

---

另外比如自己的网站,其实也差不多,外部依赖的 js 我会分版本存一份。万一不兼容,老项目就直接指到老版本了。但那个结构比较清晰,所有第三方 js 单独丢一个目录,备份起来也就还好。实在不行还有外部 cdn 之类的。

---

美术的确是 svn 好点。最终用图 svn,源文件定期手动硬盘备份。
wangyzj
2020-04-16 00:35:46 +08:00
写一个 shell
每个月第一天手动 add 一下
27
2020-04-16 00:47:11 +08:00
本项目 ignore deps 文件夹
把文件夹 ln -s 或用 crontab 定时复制到另一个 git repo
msg7086
2020-04-16 02:49:31 +08:00
git 可以干但是这种场景似乎不是 git 该干的活。最好还是单独做备份工作。
reus
2020-04-16 09:35:24 +08:00
临时删掉.gitignore 文件不就行了,提交之后再放回去。

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

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

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

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

© 2021 V2EX